web-dev-qa-db-ja.com

端末コマンドを元に戻す方法はありますか?

ディレクトリ全体を別のディレクトリにコピーしました

cp ~/local/* ./

実際にタイプしたかった

cp ~/local/srl* ./

だから私はたくさんの不要なファイルで自分自身を創設しています。私はそれらを手で抑制することができますが、私は疑問に思っていました、用語のすべてのコマンドを元に戻す方法はありますか?

4
PandaV2

いいえ、コマンドを元に戻す方法はありません(少なくともユニバーサルではありません)。これは、ユーザーが削除したいファイルよりも多くのファイルをカバーしていることに気付かずに、間違った正規表現を使用してrmを実行するときに問題になることがよくあります。

また、ターミナルから元に戻すANYコマンドを実装することは実際には不可能です。電子メールを送信したり、サウンドを再生したりするコマンドを想像してみてください。これらを元に戻す方法はありません。

cpではなくrmを実行したことを喜んでください。

将来については、移動/削除/コピーするファイルが多すぎない場合は、-iスイッチはそれを「インタラクティブ」モードに変え、各アクションの前に確認を求めます。

12
MatthewRock

このようなコマンドを元に戻す普遍的な方法はありません。ただし、ファイルを上書きしていない場合は、ソースファイルのリストを使用して宛先から削除する必要があるセットを特定することはそれほど難しくありません。

あなたは誤ってこれを実行しました:

cp ~/local/* ./

したがって、削除するファイルのセットを見つけるには、次のようなものを使用できます。

for SRC in ~/local/*; do DST="${SRC/*\/}"; echo rm "$DST"; done

DST="${SRC/*\/}"は、~/local/*内のファイルのリストからパスを取り除き、ファイル名だけを残します。)正しいファイルのリストが表示されたら、コマンドからechoを取り出し、再実行してください。

3
roaima