xargsを使用した対話式ディレクトリの削除

xargsを使用した対話式ディレクトリの削除

ギガバイトのスペースを使用してすべてのディレクトリを見つけます。 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}')

また、ファイル名にスペースが含まれていると、上記のコマンドは正しく機能しません。

おすすめ記事