~/foo
サブディレクトリがあるディレクトリで作業しています。
~/foo/alpha
~/foo/beta
~/foo/epsilon
~/foo/gamma
~/foo
各「レベル1」サブディレクトリの下の合計サイズを確認し、サイズが指定された値より小さい場合は、ディレクトリとその内容を削除するコマンドを実行したいと思います。
したがって、.より小さいコンテンツを削除したいとします50K
。$ du -sh */
8.0K alpha/
114M beta/
20K epsilon/
1.2G gamma/
~/alpha
私のコマンドでその内容とその内容を削除できるようにしたいです~/epsilon
。そのようなコマンドがありますか?私はこれが何とかできると思いますfind
が、どうなるかはよくわかりません。
ベストアンサー1
GNUfind
とGNUを使用coreutils
し、ディレクトリ名に改行がないとします。
find ~/foo -mindepth 1 -maxdepth 1 -type d -exec du -ks {} + | awk '$1 <= 50' | cut -f 2-
これにより、合計コンテンツが50K未満のディレクトリが一覧表示されます。結果に満足して削除するには、| xargs -d \\n rm -rf
コマンドラインの最後に追加します。