有没有办法将目录从一个文件系统复制到另一个文件系统,但删除部分文件,以防目标文件系统上的磁盘空间不足?
我搜索了cp
手册rsync
,但没有找到任何东西;我可以在 shell 脚本中执行此操作,但如果可能的话,我想避免它。
目前我这样做:
cp -r /source /dest
或者
rsync -avr /source /dest
米。
答案1
如果你看一下 rsync 手册,你可以读到:
--partial
By default, rsync will delete any partially transferred file if the transfer is
interrupted. In some circumstances it is more desirable to keep partially
transferred files. Using the --partial option tells rsync to keep the partial file
which should make a subsequent transfer of the rest of the file much faster.
这意味着您不需要担心部分转移。
您可以确认该--partial-dir=DIR
选项。然后,如果您想消除部分传输的文件,您可以删除此目录下的所有文件。
答案2
最好的方法就是在开始复制之前检查可用空间(留出一点多余的空间)。
cp 的正常行为是删除不完整的文件。