rmコマンドをキャンセルする方法は?


9

完成した rmコマンドを元に戻す方法については多くの質問があります。私の場合、RMは「このファイルを削除してもよろしいですか?」

そして、私はそれらのそれぞれについて確認する必要があります。「y / n」を手動で確認する代わりに:

  1. n番目のファイルのy / nを要求されたときに、残りに「yes」を設定できますか?(Windowsの「Yes to All」チェックボックスに相当)(yes | rm開始する前にトリックを知っています)

  2. n番目のファイルのy / nを要求されているときに操作を中止できますか?(マシンのシャットダウンを除く:))


10
ctrl-cを押して、もう一度起動しますか?ところで、-fを指定しても何も聞かれないはずです。それが-fの要点です。
user253751 2015年

正解です。私の質問のタイトルから「-f」を削除しました。
Andrejs、2015年

回答:


19

リクエスト1を実行するには、N回yes送信してからyキーボード入力を渡すよりも高度なプログラムを使用する必要があります。rm常に尋ねる(rm -i)か、決して尋ねない()以外は、これを行うことはできませんrm -f

いつでも中止することができますrm

  • Control-Cを押して中断(SIGINTを送信)、
  • Control-Zを押して停止し(SIGSTOPを送信)、強制終了します。
  • SIGTERM(kill)の送信、または
  • SIGKILL(kill -9)を送信します。

これによりrm、すでに実行されたファイル操作は元に戻されませんが、それ以上ファイル操作が実行されなくなります。rmプロセスが現在ユーザー入力を要求している場合、ファイルのアクティブなリンク解除は行われていないため、プロセスを強制終了しても続行できなくなります。


何についてのyes | head -9 | rm...9イエスの(例えば)を取得するには?
Jeff Schaller

2
@JeffSchallerそれは入力なしで9番目のy / nに到達しますが、10番目のy / nに答えることはできません。
ケーシー2015年

1
{ yes | head -n9; yes n; } | rm -i …最初の9個のファイルを削除してから、残りのファイルに対して「いいえ」と答えるのに使用できます(もちろん、{ … }パーツを拡張して、可能な数値の組み合わせをすべてカバーできます)。
zrajm 2015年

4
...それが何に役立つのかわかりませんが。リンクしない/リンクしないファイルがわかっている場合は、rmツイストした信頼できないコマンドを作成する代わりに、正しい引数を渡してみませんか?
スペクトル2015年

10

GNU rmは-i、をサポートしています。これは、あなたが参照しているものであり、各ファイルの確認を求めているものですが、も-I少し異なります。

-I     prompt once before removing  more  than  three  files,  or  when
       removing  recursively.  Less intrusive than -i, while still giv‐
       ing protection against most mistakes

それが開始された後、RM、打撃との相互作用を停止することが可能ですか否かの判断がCtrl- Cそれを行う必要があります。


2

Ctrl+ cあなたは操作を取り消すことができるようになります。

ただし、.bashrcファイルを確認する場合は、確認を強制するエイリアスにコメントを付けることができます-i。これは、拡張されたdhagとしてparamを使用します。

あなたの中に.bashrc次のようなエントリがあります:

alias rm='rm -i'

あなたrm -fがそれをコメントすると、あなたは直接働きます


1

下ではbash、あなたが付加することで、エイリアスをバイパスすることができます\ので、コマンドに

rm filename

なる

\rm filename

2
これは、「RMプロセスを中断する方法」の私の質問に何か持っているどのように私を見ていない
Andrejs

@AndreyDoroninこれは、開始前yes | rmトリックを知っている
Andrew Henle

@AndreyDoronin>それは、あなたが質問で与えた理由のためにrmプロセスを中断する方法を尋ねる必要がないようにする方法を伝えます。
2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.