ギガバイトのスペースを使用してすべてのディレクトリを見つけます。 xargsからディレクトリ名を抽出し、xargsを再度削除して削除します。
du -d2 -h ~/Downloads/ | grep -E '[0-9]G' | xargs -I{} sh -c "echo {} | cut -d' ' -f2" | xargs rm -ri
ディレクトリをインタラクティブに削除したいのですが、bashにオプションを入力する機会はありません。
ベストアンサー1
rm -ri
最後のパイプコマンドを使用して対話的に質問に答えることはできませんxargs
。説明ここ。
代わりに、大きなディレクトリのリストを引数として渡すことができますrm -ri
。
rm -ri $(du -d2 -h ~/Downloads/* | grep -E '[0-9]G' | xargs -I{} sh -c "echo {} | cut -d' ' -f2")
これを次xargs cut
のように変更できますawk
。
rm -ri $(du -d2 -h ~/Downloads/* | grep -E '[0-9]G' | awk '{print $2}')
またはより短く:
rm -ri $(du -d2 -h ~/Downloads/* | awk '$1 ~ /G$/ {print $2}')
また、ファイル名にスペースが含まれていると、上記のコマンドは正しく機能しません。