如果我有一个脚本 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
已经存在并且是被覆盖通过第一个命令。它的原始内容不容易恢复。可以肯定的是,所谓的“撤消”命令不会恢复原始内容。
另一种情况是 ifhike_valley.txt
是目录(可能是)或目录的符号链接。在这种情况下,第一个命令创建或覆盖hike_valley.txt/2022-05-03.txt
.这里所谓的“撤消”mv hike_valley.txt/2022-05-03.txt ./
已经与上面的“撤消”不同。如果发生覆盖,它也不会真正撤消。
同样的推理也适用于mv
脚本中的每个命令。