mik*_*eum 47 bash find wildcards files
我需要递归删除所有子目录中的所有文件,其中文件名包含一个数字,后跟一个“x”,后跟一个数字,至少两次。
例子:
我想删除这些文件:
'aaa-12x123-123x12.jpg'
'aaa-12x12-123x12-12x123.jpg'
Run Code Online (Sandbox Code Playgroud)
但我不想删除这些文件:
'aaa.jpg'
'aaa-12x12.jpg'
'aaaxaaa-123x123.jpg'
'aaaxaaa-aaaxaaa.jpg'
Run Code Online (Sandbox Code Playgroud)
我该怎么做(来自 bash shell)
Gil*_*il' 83
一个字符串包含“一个数字后跟x一个数字”当且仅当它包含一个数字后跟x一个数字,即如果它包含一个与模式匹配的子字符串[0-9]x[0-9]。因此,您要删除名称与 pattern 匹配的文件*[0-9]x[0-9]*[0-9]x[0-9]*.jpg。
find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' -delete
Run Code Online (Sandbox Code Playgroud)
如果您find没有-delete,请致电rm删除文件。
find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' -exec rm {} +
Run Code Online (Sandbox Code Playgroud)