我有一台 QNAP TS-210 NAS,看起来船上有 Debian Linux。我在那里安装了 Midnight Commander,并且已经成功使用它很多年了。今天我发现了一些奇怪的事情。
我必须将大量电影(大约 130 GB)从一个文件夹移动到另一个文件夹。电影被分成许多子文件夹。每当我进入任何特定文件夹时,选择 MC 中的所有文件并按 F6 将它们移动到目的地,一切都很好。但是,当我尝试移动整个子文件夹时(目标也有它,但里面的文件不同,所以在任何情况下都不会覆盖),过程需要非常非常长的时间。实际上看起来我的 NAS 会复制该文件,而不是移动该文件。
这是正常情况吗?当我在 Windows 上执行相同的操作时,移动过程总是非常非常快,无论我是移动整个文件夹还是仅移动其内容。
答案1
mv
有两种工作方式。mc
移动的行为方式相同。
- 如果文件位于同一逻辑设备(分区或磁盘)上,则仅移动目录条目。这可能非常快。
- 如果文件位于不同的逻辑设备上,则复制文件并在复制完成后删除旧文件。这相对较慢,因为必须读取文件,然后写入。
如果您的 NAS 有多个磁盘,则移动可能会导致数据在设备之间移动。您可以使用该命令检查安装了哪些目录(及其空间利用率)df
。
答案2
除了经验知识之外,我没有任何东西可以支持我的陈述,但我认为其mc
行为并不完全与 相同mv
。我只是偶然发现了这个问题,因为我正在经历文件的缓慢移动,mc
而这mv
是即时的。问题似乎出在文件的所有权上。当我将文件移入 时mc
,所有权将更改为当前正在运行的用户mc
,并且需要很长时间。当我按照命令移动时mv
,移动是即时的,并且所有权保持原始状态。
答案3
确保 mc 有权删除正在移动的文件。如果该文件由 root 用户拥有,并且 mc 未以 root 身份运行,则 mc 将完全复制该文件,因为如果没有提升的权限,它无法移动该文件。如果由于权限不足而显示错误就更好了。