web-dev-qa-db-ja.com

ディレクトリレベルでrm -rfに確認を1回だけ要求させるにはどうすればよいですか?

rm -rfiを使用すると、各ファイルが削除されるたびにメッセージが表示されます。 rm -rfコマンドのリストがある場合、マシンが確認を1回だけ要求するようにするにはどうすればよいですか(ディレクトリ自体を削除するときに)

3
chintogtokh

いくつかのrm実装(DragonFly BSDの由来、FreeBSD、およびGNU少なくとも))では、-I(大文字のi)は、あなたが探しているものです。 -iはすべてのファイルの確認を求めますが、-I(大文字のi)ファイルが3つ以上ある場合、または再帰的に削除する場合は、確認を1回要求します。

2
AsenM
zsh -c 'rm -f -- **/*(^/)'
rm -ri -- *

これは再帰的に行われます(**/)すべて削除(*)ディレクトリではありません(^/zsh;次に、既存のシェルを使用して、残っているもの(ディレクトリ)をインタラクティブに削除します。最初の削除にドットファイルを含めるには、次を使用します。

zsh -c 'rm -f -- **/*(D^/)'

に続く:

rm -ri -- *
1
Jeff Schaller

これを試してください、まあこれは野生の解決策かもしれませんが、とにかく共有したかったです!

# function rm_ {
   [[ -d $1 ]] && rm -rI $1 || rm -f $1; 
}

次に、rm_ <directory|file>を使用します。そのdirectoryを取得した場合、rm: remove all arguments recursively?を取得します。それ以外の場合、ファイルは削除されます。

この方法では、ファイルの削除中にユーザーへのプロンプトは表示されず、ディレクトリの削除中にユーザーにプロンプ​​トが表示されます。

rm -rIのみが使用された場合、ユーザーはファイルとディレクトリの両方に対して確認プロンプトを取得するため、rm -frm -rIの両方を組み合わせて使用​​しました。

0
ss_iwe