我在 a 中犯了一个错误,rsync
所有文件都被复制了很长的完整路径。我复制的所有文件都在
/var/www/photos/2012/1007/1007
尝试 1
现在我想通过这样做来修复路径
mv /var/www/photos/2012/1007/1007 /var/www/photos/2012
这给出了错误:
mv: cannot move `/var/www/photos/2012/1007/1007' to `/var/www/photos/2012/1007': Directory not empty
尝试 2
mv /var/www/photos/2012/1007/1007/* /var/www/photos/2012/1007
我收到错误:
-bash: /bin/mv: Argument list too long
问题:重命名包含大量文件的文件夹的正确方法是什么?
这些文件实际上被复制到了,/var/www/photos/2012/1007/home/photos/public_html/2012/1007
但不知何故我把它们复制到了/var/www/photos/2012/1007/1007
同步命令:
rsync -zavrR --rsh="ssh -c arcfour -l root -p 2200" www.mydomain.com:/home/photos/public_html/2012/1007 /var/www/photos/2012/1007
这在我的测试中使用了您提供的路径:
正在发生的事情是您试图将目录移动到现有目录之上 - 它不喜欢这样做,因为目录中有东西。通过首先重命名 2012,您可以毫无问题地移动它。
我至少能想到两种方法:
1:先将/var/www/photos/2012/1007重命名为/var/www/photos/2012/temppath,然后mv /var/www/photos/2012/temppath/1007 -> /var/www/photos/2012 /,然后 rmdir /var/www/photos/2012/temppath。
2:使用一个简单的脚本来移动内容:
第一种方法可能是您问题的更好答案。