Bash
刪除匹配模式的文件
我需要遞歸刪除所有子目錄中的所有文件,其中文件名包含一個數字,後跟一個“x”,後跟一個數字,至少兩次。
例子:
我想刪除這些文件:
'aaa-12x123-123x12.jpg' 'aaa-12x12-123x12-12x123.jpg'
但我不想刪除這些文件:
'aaa.jpg' 'aaa-12x12.jpg' 'aaaxaaa-123x123.jpg' 'aaaxaaa-aaaxaaa.jpg'
我該怎麼做(從 bash shell)
一個字元串包含“一個數字後跟
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
如果您
find
沒有-delete
,請致電rm
刪除文件。find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' -exec rm {} +