Nic*_*ton 18 windows unix file-management
一般来说,当我意识到如果取消文件移动可能会导致目标或源不完整时,我会感到恐慌。此问题适用于基于 Windows 和 Unix 的平台。我永远无法确切地记得在这两种情况下移动命令是如何工作的。例如,如果您要移动目录;它是复制整个目录,然后删除它,还是复制然后单独删除每个文件?
我总是意识到,在键入类似的内容mv verybigdir dest后,我可能应该键入cp -R verybigdir dest && rm -R verybigdir(&&只有在第一个命令成功时,操作员才会继续执行下一个命令)——或者这是毫无意义的吗?确切地说,当我在移动中途按Ctrl+时会发生什么C?同样,当我按下取消按钮时,Windows 上究竟发生了什么?
我无法计算我移动某些东西的次数(最后一次是使用svn)并且有两个目录,内容拆分。我想答案很困难,因为并非所有应用程序都以相同的方式移动文件组。
小智 10
不。
解释:
mv verybigdir dest
Run Code Online (Sandbox Code Playgroud)
将verybigdir 重命名为dest。这是一个原子操作,即不能中途失败。
如果 dest 在另一台设备上, mv 将先复制,然后删除旧版本。这不是原子操作。如果失败,您可能在 dest 中只有一个非常大的目录的部分副本,但非常大的目录仍然是完整的。
是的,其他应用程序可能会以不同方式移动文件。
小智 10
在 Windows 上,移动到相同的驱动器和分区就像 Unix 的 mv 命令一样,可以重命名文件夹或更改其父文件夹。但是,如果您要将其移动到另一个驱动程序或分区,它将逐个文件复制和删除文件,因此为什么使用 tar 文件或不压缩的 zip 文件在分区和硬盘驱动器之间更快地移动文件会更有效. 如果您要取消它,它只会停在原处。我相信 Unix 也是如此,但我没有对它进行足够的实验来 100% 确定。这只是更改 inode 的问题,但如果它位于另一个分区或驱动器上,则需要将其复制到该分区或驱动器上的扇区。如果你在传输过程中取消它,它已经移动了一些文件,并且正在传输的文件会看到它'
更新:如果您要取消搬家并想恢复搬家,只需重新下达搬家订单即可。它可能会警告您目标文件夹已经存在,但文件不会被覆盖(除非它们在原始移动之前存在,或者被添加到两个移动命令之间),因为一旦它们被传输,它们就会从文件夹中删除。源(如果在不同的分区或驱动器上)。
在 Windows 上我总是复制和删除而不是移动。我曾经在移动文件时,这是我第一次注意到内存条坏了的地方。移动文件时,它停在中间,我收到一个错误,所以我检查了源文件夹,文件消失了,然后我检查了目标,发现有一个损坏的文件。对于较大的文件,这种情况会更频繁地发生,并且大多数文件都是需要数小时才能下载的,因此建议先复制然后删除。一开始就节省时间,最终会得到回报。
| 归档时间: |
|
| 查看次数: |
27598 次 |
| 最近记录: |