首页 > 解决方案 > mv 命令创建了一个可执行文件而不是一个目录

问题描述

我最近尝试通过运行-exec mv带有find(下面链接的命令)的命令来移动一些文件。当我这样做时,我输入了错误的目标目录路径(因此该目录还不存在)并mv创建了似乎是可执行文件而不是目录的东西?当我运行“获取信息”时,一个图像呈现并且文件大小大约是图像的正确大小,但应该复制数百个文件。我是否永远丢失了这些数据?有没有办法让 macOS 将这个“可执行文件”识别为目录?

这是我使用的命令:

find . -type f -name "*.JPG" -exec mv {} ../../DestinationFolderName \;

这是一个图像,显示了一个成功的 mv 到现有目录,以及当我将路径放入一个尚不存在的目录时发生了什么。

左侧是文件夹的图像,右侧是可执行文件。

标签: zshmv

解决方案


不幸的是,不存在的名称的“mv”被解释为文件名而不是目录。因此,操作系统一个接一个地复制了您的 JPG 文件。生成的文件很可能是它最后移动的那个 JPG(如果你将它重命名为 JPG 扩展名,你可以检查哪个)。

因此,非常不幸的是,您可能需要快速研究适用于 MacOS 的数据恢复工具(并且在您尽可能多地在磁盘上创建更多文件之前这样做)。文件的“幽灵”现在至少大部分仍然存在于您的硬盘驱动器上(作为已释放的段),但在您创建新文件时会回到池中被覆盖(即使您的浏览器创建临时缓存文件,并且像这样的东西)。这是一个难题。

如果您没有文件的备份/时间机器,最好的办法是快速获取 MacOS 数据恢复程序。

很抱歉没有更愉快的答案。


推荐阅读