web-dev-qa-db-ja.com

私は昨夜ミスをしました、それは私のファイルサーバーの1800GBを意図せず削除しました

私は昨日このコマンドを実行しましたが、テストマシンを考えましたが、これはSSH経由で接続されたファイルサーバーでした。

Sudo rm -rf /tmp/* !(lost+found)

私の端末エミュレータはKonsoleです。私のシステムはDebian 7です。

質問:

このコマンドは、/ tmp内のファイル以外のファイルを削除しましたか?

27

Bashの正しい構文は次のとおりです。

rm /tmp/!(lost+found)

@ goldilockswrote コメントとして、元のコマンドはクエリを拡張します(/tmpフォルダー内のすべてのファイルを削除してから、そして、現在の作業フォルダー(あなたの場合はhomeフォルダー)内のすべてのファイルを削除します。

一部のデータを回復できるかどうかを確認してみてください。 Linuxのデータ復旧について質問があります ここ

43
Gabor Farkas

rmコマンドの!(lost+found)は、おそらく致命的な誤りでした:

1978  rm -rf /tmp/* !(lost+found)
1979  Sudo rm -rf /tmp/* !(lost+found)

bashがそれで何をしているのか正確にはわかりませんが、以下のコマンドは/tmp/およびすべての現在のディレクトリ(現在は~):

echo /tmp/* !(lost+found)
26