命令“find ... -exec mv ...”创建了一个内容奇怪的文件

Vic*_*rin 0 shell files mv

我想将二进制文件从文件夹移动/myhome/sourcedir/myhome/targetdir. 我用了一个命令find /myhome/sourcedir -type f -cmin +3 -exec mv '{}' /myhome/targetdir ';'

/myhome/sourcedir执行此命令之前文件夹已存在,但文件夹/myhome/targetdir不存在。我只是忘记创建/myhome/targetdir.

此命令的结果 -/myhome/targetdir创建了新文件。文件很大,包含很多奇怪的符号))

如何恢复我的所有文件?

Jam*_*ven 6

假设find找到了 3 个文件:a、b 和 c。这导致了 3 个命令:

mv a /myhome/targetdir
mv b /myhome/targetdir
mv c /myhome/targetdir
Run Code Online (Sandbox Code Playgroud)

因此,a 被重命名为 /myhome/targetdir,然后 b 被重命名为 /myhome/targetdir(破坏了以前的 a),然后 c 被重命名为 /myhome/targetdir,破坏了以前的 b。文件 c 很好(它刚刚被重命名)。其他文件有问题。看看被覆盖的文件可以恢复吗?. 你也许能够恢复一些东西。

将来,使用:

mv -t /myhome/targetdir '{}' 
Run Code Online (Sandbox Code Playgroud)

会更安全。