得到这个问题时,我搞砸了一个rsync,忘了添加一个尾部的斜线。
所以现在我有一个额外的文件夹。
当前foldertree
/Volumes/hd/images1/images1/ /Volumes/hd/images2/images2/ /Volumes/hd/images3/images3/
我想得到这个
/Volumes/hd/images1/ /Volumes/hd/images2/ /Volumes/hd/images3/
有没有办法摆脱多余的文件夹来得到我想要的,我试图
mv /Volumes/hd/images1/images1/ /Volumes/hd/images1/
但有一个错误说,他们是相同的,我也尝试了一些基本的PHP脚本来为我做这项工作,没有任何运气。
我无法删除或真正复制文件夹的内容,因为它的海量数据,我可以通过更改父文件夹的名称手动执行,然后将子文件夹拖到/ hd,然后删除旧的父。 但是,它的很多工作,所以如果有人知道如何做到这一点,我会非常高兴。
我使用Mac OS X,如果它的任何利益
你应该学习如何使用shell命令,可能类似于
for f in /volumes/hd/* ; do b=$(basename $f) d=$(dirname $f) mv $f $d/$b.dir mv $d/$b.dir/* $f done
首先检查它是否通过使用echo mv
替换mv
达到目的
你真的应该学习如何在MacOSX上使用基本的Unix命令(在一个终端内)
我想你最后的想法是去的:
更改父文件夹的名称,然后将子文件夹拖到/ hd,然后删除旧的父文件夹
但不要手动。 你可以写一个shell脚本来完成这个工作。 伪代码:
for parent in `ls /Volumes/hd/` do exec 'mv ' + parent + ' ' + parent + '.old' exec 'mv ' + parent + '.old/' + parent + ' ' + '/Volumes/hd/' exec 'rmdir ' + parent + '.old end