次のファイルがあります。
cap_20151023T122915_791033959.png
cap_20151023T122918_946392456.png
cap_20151023T122920_227637228.png
cap_20151023T122920_875467456.png
find
このコマンドを使用して、以下より大きい項目を削除したいと思います。たとえば、これにより合計が削除cap_20151023T122919*
されます。cap_20151023T122920_227637228.png
cap_20151023T122920_875467456.png
コマンドを使用してこれを行う方法はありますかfind
?
答え1
そしてzsh
<[x]-[y]>
グローバルオペレータ(範囲内の数字と一致(含むx
); y
2つの数字のいずれかを省略して範囲を開いたままにすることができます。)たとえば、次のようになります。
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
答え2
最適ではありませんが、次のように動作します。
find /where/is/search/folder -name "cap_20151023T1229[2-9]*" -exec rm '{}' \;
括弧内の数字を削除する必要がある数字に置き換え、必要に応じて位置を変更します。