Mv

你能用一系列 mv 命令反轉 bash 腳本嗎?

  • July 1, 2022

如果我有一個腳本 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 文件是否可以以完全相反的方式呼叫?

一般來說,沒有撤消的命令mv 2022-05-03.txt hike_valley.txt

乍一看mv hike_valley.txt 2022-05-03.txt似乎是這樣的“撤消”命令。但是想像一個正常文件hike_valley.txt已經存在並被第一個命令*覆蓋。*它的原始內容不容易恢復。可以肯定的是,所謂的“撤消”命令不會恢復原始內容。

另一種情況是 ifhike_valley.txt是目錄(可能是)或目錄的符號連結。在這種情況下,第一個命令會創建或覆蓋hike_valley.txt/2022-05-03.txt. 這裡所謂的“撤消”mv hike_valley.txt/2022-05-03.txt ./已經不同於上面的“撤消”。如果發生覆蓋,它並沒有真正撤消。

相同的推理適用mv於腳本中的每個命令。

引用自:https://unix.stackexchange.com/questions/708317