分页: 1 / 2

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

发表于 : 2014-03-01 10:10
ubuntuubun
例如我在ubuntu文件夹下有5个文件
分别是1,2,3,4,5
这5个文件夹下边都有个同样的目录a
我想将这5个文件夹合并,应该怎么做?用什么命令呢?谢谢!

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

发表于 : 2014-03-01 11:49
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目录下的内容的总合。

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

发表于 : 2014-03-01 14:27
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目录下的内容的总合。
有没有简单点的命令或者软件能做到呢?
例如我要合并数十个文件夹的话,这样都是重复操作呢,我是想将将同一目录下的所有子目录都合并,有没好用的命令或者软件?

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

发表于 : 2014-03-01 14:47
eexpress
你的合并,是要干啥,没说清楚。

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

发表于 : 2014-03-01 16: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 :是你要将这些子目录合并到的目录

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

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

我常常有多个文件夹下边的子目录同名目录是可合并在一处,人工一个个剪切合并太累了,所以来问下有没这样的命令可用。

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

发表于 : 2014-03-01 17:56
ubuntuubun
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 :是你要将这些子目录合并到的目录
谢谢!但菜鸟不懂写脚本,有时间的话能不能麻烦你帮忙贴出脚本让我用呢?
类似于代码或直接附件上传脚本当然更好。

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

发表于 : 2014-03-01 18:25
luojie-dune
哦。好怪异。不是要做什么,而是要一条命令。

对过程编程,不是对对象编程。多么古老啊。。。

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

发表于 : 2014-03-01 19:20
ubuntuubun
luojie-dune 写了:哦。好怪异。不是要做什么,而是要一条命令。

对过程编程,不是对对象编程。多么古老啊。。。
我不是编程,只是想要将重复的工作简单点,每天都不断从不同的文件夹剪切来合并成一文件夹。

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

发表于 : 2014-03-01 19:41
eexpress
不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;

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

发表于 : 2014-03-01 20:14
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命令怎么实现?

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

发表于 : 2014-03-01 20:16
maplebeats
eexpress 写了:不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
神居然用shell~怎么能这样,我大perl去哪儿了

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

发表于 : 2014-03-01 23:41
pengqian
eexpress 写了:不是直接mv就可以嘛

mv ./*/ub/* ~/ub

如果硬要是搞高级的

find . -type d "ub" -exec mv {}/* ~/ub \;
我也觉得... tar 看的我一头雾水。

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

发表于 : 2014-03-01 23:45
luojie-dune
就是说,条条大路通罗马。

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

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

发表于 : 2014-03-02 11:20
cao627
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命令怎么实现?