特定のサイズより小さいファイルをすべて削除するスクリプト(クローン操作)

特定のサイズより小さいファイルをすべて削除するスクリプト(クローン操作)

/media/motion で、13 MB 未満のすべてのファイルと同じファイル名に追加の拡張子が追加されたすべてのファイル (すべて 13 MB よりはるかに小さい) を削除する必要があるため、検索結果に「*」を追加します。

ファイルは次のようになります。

file1.mp4
file1.mp4.thumb
file2.mp4
file2.mp4.thumb

13MB未満のすべての.mp4ファイルとその.mp4.thumbファイルを削除したい(両方とも小さい)。

私は2つの方法を試しました。コマンドをエコーし​​て実行すると機能しますが、スクリプトを実行すると機能しません。

/usr/bin/find /media/motion -name \"*.mp4\" -size -13M -exec rm -f {}\\* \\\;  

見つかりました: "exec"のパラメータがありません。

私も次のことを試しました。

/usr/bin/find /media/motion -name "*.mp4" -size -13M -print | xargs printf -- '%s \* \n' | xargs -0 rm -f

これにより出力は発生しません。

ベストアンサー1

デフォルトの crontab PATH( /usr/bin:/bin) を変更していない場合は、シェルと crontab で動作します。

find /media/motion -type f -name '*.mp4' -size -13M -exec sh -c 'for f; do rm "$f"*; done' sh {} +

これはシェルスクリプトを使用してファイルを繰り返し、*予想されるファイルに展開します。

必要に応じて追加できます-frm

おすすめ記事