Windows 如何使用bash脚本删除具有特定编号的图像?
我的目标是编写一个脚本,将beleteall.jpg命名为“\u0” 示例:foo_0.jpg和bar_0.jpg 脚本的预期行为:删除带有“_0.jpg”的所有文件 我试图:Windows 如何使用bash脚本删除具有特定编号的图像?,windows,bash,find,Windows,Bash,Find,我的目标是编写一个脚本,将beleteall.jpg命名为“\u0” 示例:foo_0.jpg和bar_0.jpg 脚本的预期行为:删除带有“_0.jpg”的所有文件 我试图: #!/bin/bash find . -name _0.jpg -type f -delete 导致意外错误消息: FIND:参数格式不正确 如果使用查找“\u0.jpg”-name-type f-delete在文件夹中直接从命令行获取意外结果: Access denied - . File not found -
#!/bin/bash
find . -name _0.jpg -type f -delete
导致意外错误消息:
FIND:参数格式不正确
如果使用查找“\u0.jpg”-name-type f-delete
在文件夹中直接从命令行获取意外结果:
Access denied - .
File not found - -NAME
File not found - -TYPE
File not found - F
File not found - -DELETE
更新:
运行find”“*\u 0.jpg”“
会找到文件
预期行为删除foo_0.jpg和bar_0.jpg。
运行find”“*\u 0.jpg”“-name f-delete
或运行find”“*\u 0.jpg”“-exec rm“{}”
运行bash-x(调试)时出现意外结果:
更新2:
由于Windows问题(使用错误的find
),我安装了findutilschoco安装-y findutils
添加了一个新路径并向下移动了system32
。
结果运行:find--help
default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:
operators (decreasing precedence; -and is implicit where no others are given):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
positional options (always true): -daystart -follow -regextype
normal options (always true, specified before other expressions):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xdev -ignore_readdir_race -noignore_readdir_race
tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
-ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
-links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
-nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]
actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
-fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
-exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
-execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;
Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.
默认路径为当前目录;默认表达式为-print
表达式可能包括:运算符、选项、测试和操作:
运算符(优先级递减;-并且在没有其他运算符的情况下是隐式的):
(EXPR)!EXPR-非EXPR EXPR1-a EXPR2 EXPR1-和EXPR2
EXPR1-o EXPR2 EXPR1-或EXPR2 EXPR1,EXPR2
位置选项(始终为true):-daystart-follow-regextype
正常选项(始终为true,在其他表达式之前指定):
-深度--help-maxdepth级别-mindepth级别-mount-noleaf
--version-xdev-ignore\u readdir\u race-noignore\u readdir\u race
测试(N可以是+N或-N或N):-amin N-anewer FILE-atime N-cmin N
-cnewer文件-ctime N-empty-false-fstype-gid N-group NAME
-ilname模式-iname模式-inum N-iwholename模式-iregex模式
-链接N-lname模式-mmin N-mtime N-name模式-newer文件
-nouser-nogroup-path模式-perm[+-]模式-regex模式
-全名模式-大小N[bcwkMG]-真-类型[bcdpflsD]-uid N
-已使用N-用户名-xtype[bcdpfls]
操作:-删除-print0-printf格式-fprintf文件格式-print
-fprint0文件-fprint文件-ls-fls文件-prune-quit
-exec命令-exec命令{}+-ok命令;
-execdir命令-execdir命令{}+-okdir命令;
通过findutils bug reporting报告(并跟踪修复进度)bug
翻页http://savannah.gnu.org/ 或者,如果您没有网络访问权限,请发送
电邮至。
使用:
- 操作系统:Windows10Pro
- 管理者
FIND.EXE,而不是可爱的GNU/LinuxFIND
实用程序。赠品是错误消息的资本化及其无用性质——“参数不正确”
您可以通过运行以下命令来确认这一点:
FIND /?
如果输出看起来像什么,它就是WindowsFIND.EXE
解决方案是安装GNUfind
的一个版本,您将自己定位为findutils
的一部分,它来自巧克力软件您的意思是'*0.jpg'
?a10.jpg
也应该删除吗?-name“*\u 0.jpg”@choroba我是说所有\u 0.jpg
文件。a10.jpg
可能不会被删除您使用的是什么操作系统?我不使用Windows,但您所有的错误消息看起来都像讨厌的Windows错误消息,因此我想知道您的路径是否意味着您实际上使用了名为FIND.EXE
的Microsoft工具,而不是可爱的LinuxFIND
。。。我想您需要运行键入find
或哪个find
或echo$PATH
来查找。您可以看到巧克力
或巧克力
更多,因为像pacman这样的包管理器是为manjaro设计的。这是一种懒散的安装/升级软件的方式findutils
不是巧克力的一部分。但是安装软件包/软件(如find
)最简单、可读性最好的方法。
FIND /?