一連のmvコマンドを使用してbashスクリプトを元に戻すことはできますか?

一連のmvコマンドを使用してbashスクリプトを元に戻すことはできますか?

次を含む rename_everything.sh スクリプトがある場合

mv 2022-05-03.txt hike_valley.txt
mv 2022-05-20.txt not_overcooked.txt
mv 2022-05-22.txt return_trip.txt

しかし、フォルダに入れて実行するのは不安です。

bash rename_everything.sh

これを行うことにした後、それが悪い考えであると判断し、後悔している場合は、今行ったのと正反対の方法で対応する.shファイルを呼び出すことは可能ですか?

答え1

通常、注文はキャンセルできませんmv 2022-05-03.txt hike_valley.txt

一見すると、mv hike_valley.txt 2022-05-03.txt「元に戻す」コマンドのように見えます。しかし、通常のファイルがhike_valley.txtすでに存在しているとしましょう。覆われた最初のコマンドを渡します。元のコンテンツは簡単に復元されません。確かに、いわゆる「元に戻す」コマンドは元の内容を復元しません。

別のケースは、hike_valley.txtディレクトリ(可能性があります)またはディレクトリへのシンボリックリンクの場合です。この場合、最初のコマンドはを生成または上書きしますhike_valley.txt/2022-05-03.txt。ここで、「取り消し」とは、mv hike_valley.txt/2022-05-03.txt ./上記の「取り消し」と既に異なる。上書きが発生しても、実際には元に戻されません。

同じ推論がmvスクリプトのすべてのコマンドに適用されます。

関連情報