zshでの二重rm検証


15

zshでrm *を実行すると、次のようになります。

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

まずzshがすべてを削除してもよいかどうかを尋ね、次にrmが特定のファイルごとに尋ねます。

どうすればzsh検証を取得できますか?


3
を使用しrm -f ./*ます。デフォルトでrmは、ファイルへの書き込み権限がない場合は何も要求しません。たぶん、あなたは持っているalias rm='rm -i'
ステファンChazelas

ああ、そうだろう-私はVagrantシェル内から削除を実行しており、ファイルはラップトップファイルシステムでホストされています。ありがとう
ardochhigh 2014年

1
ただのメモですが、zshは引き続き「rm -rf *」のプロンプトを表示します。これはsetopt rmstarsilent
Matt

回答:


29

「zsh:すべてのファイルを削除しますか?」というメッセージはzshの機能であり、特にグロブ展開の前または前のrm引数で呼び出されたコマンドを呼び出すことによってトリガーされます。これはでオフにできます。*something/*setopt rm_star_silent

メッセージ「rm:remove regular file」はrmコマンド自体から送信されます。デフォルトでは表示されずrm、オプションで呼び出された場合にのみ表示されます-i。このメッセージが不要な場合は、そのオプションを渡さないでください。でもなし-irmあなたは読み取り専用ファイルを削除しようとした場合(異なるメッセージ付き)確認のためのプロンプト。オプションを渡すことで、この確認を削除できます-f

-iコマンドラインを渡さなかったので、rmはおそらくのエイリアスですrm -i(関数、非標準のラッパーコマンド、または別のエイリアスである可能性もありますが、エイリアスrm -iが最も適切です)。一部のデフォルト設定はalias rm='rm -i'、シェルの初期化ファイルに含まれています。これは、ディストリビューションまたはシステム管理者がセットアップしたものか、どこかから選択して構成ファイルに追加した後で忘れたものです。の~/.zshrcエイリアス定義を確認してくださいrm。見つかった場合は削除してください。見つからない場合は、エイリアスを削除するコマンドを追加します。

unalias rm

6

二重検証を無効にする正しいコマンドはのようsetopt rm_star_silentです。二重検証を有効にするには、を実行しますsetopt no_rm_star_silent

詳細については、zshoptions man zshoptionsまたはhttp://linux.die.net/man/1/zshoptionsのマニュアルページを参照してください。


またはunsetopt rm_star_silent
evandrix

1

oh-my-zshを使用している場合、common-aliasesプラグインにはrm -iエイリアスが含まれています。

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
このリンクは質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供する方が良いでしょう。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- レビューから
jayhendren

@jayhendren-これはドキュメントへのリンクではなく、問題を修正するためにインストールするものへのリンクです...
Wouter Verhelst
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.