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

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

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

#1

帖子 ubuntuubun » 2014-03-01 10:10

例如我在ubuntu文件夹下有5个文件
分别是1,2,3,4,5
这5个文件夹下边都有个同样的目录a
我想将这5个文件夹合并,应该怎么做?用什么命令呢?谢谢!
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#2

帖子 cao627 » 2014-03-01 11:49

命令行
先cd到你的这个ubuntu目录,在这个目录创建一个用于存放合并内容的文件夹x(名字随便)。

代码: 全选

(cd 1;tar cvf - *) | (cd a;tar xvf -)
(cd 2;tar cvf - *) | (cd x;tar xvf -)
(cd 3;tar cvf - *) | (cd x;tar xvf -)
(cd 4;tar cvf - *) | (cd x;tar xvf -)
(cd 5;tar cvf - *) | (cd x;tar xvf -)
这样ubuntu目录下的1,2,3,4,5目录下的内容都合并到ubuntu下的新创建的x目录下了,x目录下的目录a下也是1,2,3,4,5目录下a目录下的内容的总合。
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

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

#3

帖子 ubuntuubun » 2014-03-01 14:27

cao627 写了:命令行
先cd到你的这个ubuntu目录,在这个目录创建一个用于存放合并内容的文件夹x(名字随便)。

代码: 全选

(cd 1;tar cvf - *) | (cd a;tar xvf -)
(cd 2;tar cvf - *) | (cd x;tar xvf -)
(cd 3;tar cvf - *) | (cd x;tar xvf -)
(cd 4;tar cvf - *) | (cd x;tar xvf -)
(cd 5;tar cvf - *) | (cd x;tar xvf -)
这样ubuntu目录下的1,2,3,4,5目录下的内容都合并到ubuntu下的新创建的x目录下了,x目录下的目录a下也是1,2,3,4,5目录下a目录下的内容的总合。
有没有简单点的命令或者软件能做到呢?
例如我要合并数十个文件夹的话,这样都是重复操作呢,我是想将将同一目录下的所有子目录都合并,有没好用的命令或者软件?
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#4

帖子 eexpress » 2014-03-01 14:47

你的合并,是要干啥,没说清楚。
● 鸣学
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#5

帖子 cao627 » 2014-03-01 16:56

ubuntuubun 写了:
cao627 写了:命令行
先cd到你的这个ubuntu目录,在这个目录创建一个用于存放合并内容的文件夹x(名字随便)。

代码: 全选

(cd 1;tar cvf - *) | (cd a;tar xvf -)
(cd 2;tar cvf - *) | (cd x;tar xvf -)
(cd 3;tar cvf - *) | (cd x;tar xvf -)
(cd 4;tar cvf - *) | (cd x;tar xvf -)
(cd 5;tar cvf - *) | (cd x;tar xvf -)
这样ubuntu目录下的1,2,3,4,5目录下的内容都合并到ubuntu下的新创建的x目录下了,x目录下的目录a下也是1,2,3,4,5目录下a目录下的内容的总合。
有没有简单点的命令或者软件能做到呢?
例如我要合并数十个文件夹的话,这样都是重复操作呢,我是想将将同一目录下的所有子目录都合并,有没好用的命令或者软件?
写个脚本,大致如下:
cd /yourdir
for i in `ls -l | awk '/^d/{print $NF}'`
do
(cd $i;tar cvf - *) | (cd /dir/x;tar xvf -)
done
再删除/yourdir的所有子目录
将/dir/x目录复制到/yourdir下

这样你原来/yourdir下所有子目录下的内容合并到yourdir/x下了


/yourdir :是包含你要合并其下所有子目录的目录
/dir/x :是你要将这些子目录合并到的目录
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

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

#6

帖子 ubuntuubun » 2014-03-01 17:53

eexpress 写了:你的合并,是要干啥,没说清楚。
合并来整理资料啊。
例如ubuntu目录下的子目录,1,2,3,4,5,每个子目录下边又分别有个同名目录ub,这样我要将5个文件夹合并成为一个文件夹,以后找起来方便,要不然每次必须全浏览5个文件夹。

我常常有多个文件夹下边的子目录同名目录是可合并在一处,人工一个个剪切合并太累了,所以来问下有没这样的命令可用。
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

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

#7

帖子 ubuntuubun » 2014-03-01 17:56

cao627 写了:
ubuntuubun 写了:
cao627 写了:命令行
先cd到你的这个ubuntu目录,在这个目录创建一个用于存放合并内容的文件夹x(名字随便)。

代码: 全选

(cd 1;tar cvf - *) | (cd a;tar xvf -)
(cd 2;tar cvf - *) | (cd x;tar xvf -)
(cd 3;tar cvf - *) | (cd x;tar xvf -)
(cd 4;tar cvf - *) | (cd x;tar xvf -)
(cd 5;tar cvf - *) | (cd x;tar xvf -)
这样ubuntu目录下的1,2,3,4,5目录下的内容都合并到ubuntu下的新创建的x目录下了,x目录下的目录a下也是1,2,3,4,5目录下a目录下的内容的总合。
有没有简单点的命令或者软件能做到呢?
例如我要合并数十个文件夹的话,这样都是重复操作呢,我是想将将同一目录下的所有子目录都合并,有没好用的命令或者软件?
写个脚本,大致如下:
cd /yourdir
for i in `ls -l | awk '/^d/{print $NF}'`
do
(cd $i;tar cvf - *) | (cd /dir/x;tar xvf -)
done
再删除/yourdir的所有子目录
将/dir/x目录复制到/yourdir下

这样你原来/yourdir下所有子目录下的内容合并到yourdir/x下了


/yourdir :是包含你要合并其下所有子目录的目录
/dir/x :是你要将这些子目录合并到的目录
谢谢!但菜鸟不懂写脚本,有时间的话能不能麻烦你帮忙贴出脚本让我用呢?
类似于代码或直接附件上传脚本当然更好。
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

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

#8

帖子 luojie-dune » 2014-03-01 18:25

哦。好怪异。不是要做什么,而是要一条命令。

对过程编程,不是对对象编程。多么古老啊。。。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
ubuntuubun
帖子: 292
注册时间: 2014-03-01 10:03
系统: ubuntu debian veket

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

#9

帖子 ubuntuubun » 2014-03-01 19:20

luojie-dune 写了:哦。好怪异。不是要做什么,而是要一条命令。

对过程编程,不是对对象编程。多么古老啊。。。
我不是编程,只是想要将重复的工作简单点,每天都不断从不同的文件夹剪切来合并成一文件夹。
ubuntu,debian,fedora
银河麒麟、优麒麟、veket
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#10

帖子 eexpress » 2014-03-01 19:41

不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
● 鸣学
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#11

帖子 cao627 » 2014-03-01 20:14

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命令怎么实现?
头像
maplebeats
帖子: 378
注册时间: 2011-02-16 1:17

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

#12

帖子 maplebeats » 2014-03-01 20:16

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

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
神居然用shell~怎么能这样,我大perl去哪儿了
My blog : OOXX
pengqian
帖子: 120
注册时间: 2010-12-23 10:23

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

#13

帖子 pengqian » 2014-03-01 23:41

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

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
我也觉得... tar 看的我一头雾水。
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

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

#14

帖子 luojie-dune » 2014-03-01 23:45

就是说,条条大路通罗马。

多个目录成一个, mv 很直接,或者生成目录的过程就改,也不用这么麻烦。。。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

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

#15

帖子 cao627 » 2014-03-02 11:20

luojie-dune 写了:就是说,条条大路通罗马。

多个目录成一个, mv 很直接,或者生成目录的过程就改,也不用这么麻烦。。。

/tmp/1下有文件1.txt和子目录a ,子目录a下有文件1.exe
/tmp/2下有文件2.txt和子目录a ,子目录a下有文件2.exe

将1和2下的内容移到~/x下,使得
~/x目录下有文件1.txt,2,txt和子目录a
子目录a下有1.exe和2.exe


你用mv命令怎么实现?
回复