我试图将文件夹的所有子目录移动到同一台服务器上的另一个共享。 如果我做一个mv *,我将用尽空间,因为文件夹不会被删除,直到所有的文件夹被转移。 所以我想创build一个简短的脚本来循环每个脚本。 有没有人可以看一个例子? 我已经四处搜寻,但无法find我正在寻找什么。
你可以使用rsync(1) :
rsync --remove-source-files /path/to/source /path/to/destination
这将从原始path中删除成功传输的文件。
你想要for 。
一个例子(这将显示将会做什么):
for item in *; do echo mv "$item" /destination/directory done
当你快乐的时候,删除echo做真正的。
使用mv命令将文件从一个卷移动到另一个卷是一个复制操作。 但是,如何在源卷上用尽空间? 如果该卷的大小小于要移动的文件的总大小,则只会在目标卷上空间不足。 但无论如何,只是在源卷上释放空间,而不是在其上分配更多空间。
如果使用mv将文件从一个目录“移动”到另一个目录上,那只是一个重命名操作。 你不复制数据,你只是调整文件指针来呈现不同的目录层次结构。 由于文件数据保持在原来的位置,因此不会耗尽空间。
无论哪种方式,我不知道我看到的问题。 :-)你真的一直在尝试这个和空间不足,或者你只是想提前计划?
ls -1 | xargs -n1 -i echo mv '{}' destination
快乐时删除回声。
仅供参考,我相信mv命令不会复制然后删除操作,即有
mv /home/foo /home/bar
同时存在一段时间。 它更像重命名。 必须更改文件系统记帐,以便指向/home/foo现在指向/home/bar而不实际上将磁盘上的数据从一个位置移动到另一个位置,或者复制,然后从之前的位置删除。