当我搞砸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
答案 0 :(得分:2)
你应该学习如何使用shell命令,或许类似
for f in /volumes/hd/* ; do
b=$(basename $f)
d=$(dirname $f)
mv $f $d/$b.dir
mv $d/$b.dir/* $f
done
首先使用mv
echo mv
,检查它是否符合您的要求
你真的应该学习如何在MacOSX上使用基本的Unix命令(在终端内)
答案 1 :(得分:0)
我认为你的最后一个想法是:
更改父文件夹的名称,然后将子文件夹拖到/ 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