Shell

命令“find … -exec mv …”創建了一個內容奇怪的文件

  • April 25, 2015

我想將二進製文件從文件夾移動/myhome/sourcedir/myhome/targetdir. 我用了一個命令find /myhome/sourcedir -type f -cmin +3 -exec mv '{}' /myhome/targetdir ';'

/myhome/sourcedir執行此命令之前文件夾存在,但文件夾/myhome/targetdir不存在。我只是忘了創建/myhome/targetdir.

此命令的結果 -/myhome/targetdir創建了新文件。文件很大並且包含很多奇怪的符號))

如何恢復我的所有文件?

假設find找到了 3 個文件:a、b 和 c。這導致了 3 個命令:

mv a /myhome/targetdir
mv b /myhome/targetdir
mv c /myhome/targetdir

因此,a 被重命名為 /myhome/targetdir,然後 b 被重命名為 /myhome/targetdir(破壞了原來的 a),然後 c 被重命名為 /myhome/targetdir,破壞了原來的 b。文件 c 很好(它剛剛被重命名)。其他文件有問題。看看可以恢復被覆蓋的文件嗎?. 你也許可以恢復一些東西。

將來,使用:

mv -t /myhome/targetdir '{}' 

會更安全。

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