tac*_*a01 2 linux bash regex rm
如何查找和删除.jpg
目录树中的所有文件,但文件名中包含“sample”的文件除外?
例如 :
a.zip -> keep it
b.jpg -> delete it
a-sample.jpg -> keep it
b-Sample.jpg -> keep it
Run Code Online (Sandbox Code Playgroud)
删除所有以 . jpg
(不区分大小写)除了sample
文件名中的文件(不区分大小写:
find . ! -iname '*sample*' -iname '*.jpg' -delete
Run Code Online (Sandbox Code Playgroud)
这将从当前目录开始遍历树中的所有目录。
这个怎么运作:
.
这指定我们从当前目录开始。
! -iname '*sample*'
这指示find
忽略sample
其名称中的所有文件。将i
在-iname
使这个测试不区分大小写。
-iname '*.jpg'
此条件与前一个条件相同,查找以.jpg
.
-delete
这指示find
删除所有此类文件。
在运行上述命令之前,您可能需要对其进行测试。跑:
find . ! -iname '*sample*' -iname '*.jpg'
Run Code Online (Sandbox Code Playgroud)
这将打印出感兴趣的文件。如果这个列表是好的,那么再次运行命令并-delete
附加。