ファイル名の数字部分が指定された数字より大きい場合、ファイルを削除する方法は?

ファイル名の数字部分が指定された数字より大きい場合、ファイルを削除する方法は?

次のファイルがあります。

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

ベストアンサー1

そしてzsh<[x]-[y]> グローバルオペレータ(範囲内の数字と一致(含むx); y2つの数字のいずれかを省略して範囲を開いたままにすることができます。)たとえば、次のようになります。

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

そして2番目は次のように印刷されます。

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

結果が満足な場合は、次のようprint -rlに交換してください。rm -f

おすすめ記事