Files

如果文件名稱的數字部分大於給定數字,如何刪除文件?

  • April 16, 2019

我有這樣的文件:

cap_20151023T122915_791033959.png
cap_20151023T122918_946392456.png
cap_20151023T122920_227637228.png
cap_20151023T122920_875467456.png

並且我想使用該find命令刪除大於,例如,cap_20151023T122919*這將導致刪除cap_20151023T122920_227637228.pngcap_20151023T122920_875467456.png

有沒有辦法做到這一點,最好用一個find命令?

使用zsh<[x]-[y]> glob 運算符(匹配範圍內xy數字,包括在內;可以省略任何一個數字以使范圍開放),例如:

print -rl -- **/cap_20151023T<122920->_*

或者,如果您只想選擇122920-999999範圍內的文件名:

print -rl -- **/cap_20151023T<122920-999999>_*

所以文件名如下:

tmp/cap_20151023T122915_791033959.png
tmp/cap_20151023T122915791_959.png
tmp/cap_20151023T122918_946392456.png
tmp/cap_20151023T122920_227637228.png
tmp/cap_20151023T1229205_875467456.png
tmp/cap_20151023T122920_875467456.png
tmp/cap_20151023T122980_227637228.png

第一個列印:

tmp/cap_20151023T122915791_959.png
tmp/cap_20151023T122920_227637228.png
tmp/cap_20151023T1229205_875467456.png
tmp/cap_20151023T122920_875467456.png
tmp/cap_20151023T122980_227637228.png

而第二個列印:

tmp/cap_20151023T122920_227637228.png
tmp/cap_20151023T122920_875467456.png
tmp/cap_20151023T122980_227637228.png

如果您對結果感到滿意,請替換print -rlrm -f

引用自:https://unix.stackexchange.com/questions/238130