一个合并文件夹的命令怎么用法

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

Re: 一个合并文件夹的命令怎么用法

#16

帖子 ubuntuubun » 2014-03-02 18:18

eexpress 写了:不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
我只是举例,但是目录里边不一定只得一个ub目录啊,就是我想要将各子目录下边的内容全部合并。
原本我以为是有这样做的命令,只是我不懂得用,现在看来是没有类似作用的命令了。
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

Re: 一个合并文件夹的命令怎么用法

#17

帖子 ubuntuubun » 2014-03-02 18:24

cao627 写了:
eexpress 写了:不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
目录1下有文件1.txt和子目录a ,子目录a下有文件1.exe 甚至a其下还有子目录b
目录2下有文件2.txt和子目录a ,子目录a下有文件2.exe 甚至a其下还有子目录b
.....

我的理解,楼主的意思是
将1,2.......这些目录的内容放到目录x下
使得x的内容为
1.txt
2.txt
.......
a/1.exe 2.exe......

我不知到用mv命令怎么实现?
再写详细点的样子:
ubuntu目录下分别有
1,2,3,4,5
各目录下边又分别有几个目录:
1:
ub,ab,cb,bb
2:
ub,cb
3:
ab,cb
4:
ub,wb
5:
ub,xb
只是举例5个,可能有几十个类似的目录,现在我要将这5个目录下边的内容全合并成一目录,例如
1:下边是包括上边全部五个子目录的内容:
ub,ab,cb,bb,wb,xb
目录下边是很少有单文件的,都是子目录,但是在目录同名的时是合并在一起。
动手也很容易,就是天天剪切粘贴然后删除空目录累极了,所以想找到一个简单点的方法,现在听大家说起来简单不起来
这样说表达明白了吗?
如果有的简单点的方法请帮助
谢谢大家
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 一个合并文件夹的命令怎么用法

#18

帖子 cao627 » 2014-03-02 22:49

ubuntuubun 写了:
cao627 写了:
eexpress 写了:不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
目录1下有文件1.txt和子目录a ,子目录a下有文件1.exe 甚至a其下还有子目录b
目录2下有文件2.txt和子目录a ,子目录a下有文件2.exe 甚至a其下还有子目录b
.....

我的理解,楼主的意思是
将1,2.......这些目录的内容放到目录x下
使得x的内容为
1.txt
2.txt
.......
a/1.exe 2.exe......

我不知到用mv命令怎么实现?
再写详细点的样子:
ubuntu目录下分别有
1,2,3,4,5
各目录下边又分别有几个目录:
1:
ub,ab,cb,bb
2:
ub,cb
3:
ab,cb
4:
ub,wb
5:
ub,xb
只是举例5个,可能有几十个类似的目录,现在我要将这5个目录下边的内容全合并成一目录,例如
1:下边是包括上边全部五个子目录的内容:
ub,ab,cb,bb,wb,xb
目录下边是很少有单文件的,都是子目录,但是在目录同名的时是合并在一起。
动手也很容易,就是天天剪切粘贴然后删除空目录累极了,所以想找到一个简单点的方法,现在听大家说起来简单不起来
这样说表达明白了吗?
如果有的简单点的方法请帮助
谢谢大家
终端输入如下命令:
cd /yourdir
for i in `ls -l | awk '/^d/{print $NF}'`
do
(cd $i;tar cvf - *) | (cd /dir/x;tar xvf -)
done

其中红色的 /yourdir换成包含有你所要合并目录的的目录,即你例子中包含1,2,3,4,5这些目录的目录,
蓝色的 /dir/x换成你要存放合并和内容的目录,不要将这个目录设在1,2,3,4,5这些目录同一级上


awk '/^d/{print $NF}‘ 的目的是避开和1,2 ,3,4,5目录下同级的非目录文件,即你所谓的ubuntu目录下除了1,2,3,4,5这些你要合并的目录外可能还有其他非目录文件。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 一个合并文件夹的命令怎么用法

#19

帖子 eexpress » 2014-03-03 9:04

自己去man mv吧。
mv */*b xxxx 都可以。唉。
● 鸣学
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 一个合并文件夹的命令怎么用法

#20

帖子 cao627 » 2014-03-03 9:39

eexpress 写了:自己去man mv吧。
mv */*b xxxx 都可以。唉。

代码: 全选

~$ cd /tmp/
/tmp$ mkdir test
/tmp$ mkdir  -p test/1/ub
/tmp$ mkdir  -p test/2/ub
/tmp$ touch test/1/ub/1.txt
/tmp$ touch test/2/ub/2.txt
/tmp$ mkdir xxxx
/tmp$ cd test
/tmp/test$ mv */*b ../xxxx
/tmp/test$ ls ../xxxx/ub
1.txt
man mv 我也没看到有任何参数支持将2.txt 移到xxxx/ub下面
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 一个合并文件夹的命令怎么用法

#21

帖子 lainme » 2014-03-03 16:19

cp可以
cp test/*/* xxx/
然后删除原来的文件
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 一个合并文件夹的命令怎么用法

#22

帖子 cao627 » 2014-03-03 17:43

lainme 写了:cp可以
cp test/*/* xxx/
然后删除原来的文件
试过了,可行,但我这边要加-r参数 :em11

代码: 全选

cp -r  test/*/* xxx/
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 一个合并文件夹的命令怎么用法

#23

帖子 lainme » 2014-03-03 18:44

cao627 写了:
lainme 写了:cp可以
cp test/*/* xxx/
然后删除原来的文件
试过了,可行,但我这边要加-r参数 :em11

代码: 全选

cp -r  test/*/* xxx/
恩,打字的时候忘了 :em06
回复