[问题]求助关于cp命令

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

[问题]求助关于cp命令

#1

帖子 ffsxsy » 2008-06-17 13:33

我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
amd x2 250
amd 785g主板
2g ddr3 1333内存
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#2

帖子 yaoms » 2008-06-17 13:38

cp -a a/* b/
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
syrano
帖子: 4313
注册时间: 2007-10-06 18:40

#3

帖子 syrano » 2008-06-17 13:55

cp -r a/* b/
E=m c^2
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: [问题]求助关于cp命令

#4

帖子 BigSnake.NET » 2008-06-17 13:58

ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

Re: [问题]求助关于cp命令

#5

帖子 yaoms » 2008-06-17 13:59

BigSnake.NET 写了:
ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
打散结构,要考虑同名文件的问题。
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
ffsxsy
帖子: 779
注册时间: 2007-11-04 16:32

Re: [问题]求助关于cp命令

#6

帖子 ffsxsy » 2008-06-17 14:16

BigSnake.NET 写了:
ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
是这样的

如有同名文件,要一个就够了
上次由 ffsxsy 在 2008-06-17 14:24,总共编辑 1 次。
amd x2 250
amd 785g主板
2g ddr3 1333内存
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: [问题]求助关于cp命令

#7

帖子 BigSnake.NET » 2008-06-17 14:23

ffsxsy 写了:
BigSnake.NET 写了:
ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
是这样的

代码: 全选

cd a && find -type f -exec cp -iv {} ../b/ \;
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
ffsxsy
帖子: 779
注册时间: 2007-11-04 16:32

Re: [问题]求助关于cp命令

#8

帖子 ffsxsy » 2008-06-17 14:25

BigSnake.NET 写了:
ffsxsy 写了:
BigSnake.NET 写了:
ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
是这样的

代码: 全选

cd a && find -type f -exec cp -iv {} ../b/ \;
能不能解释一下
find -type f -exec cp -iv {} ../b/ \
,看起来好复杂
amd x2 250
amd 785g主板
2g ddr3 1333内存
头像
nihui
帖子: 1746
注册时间: 2006-10-21 12:03
来自: Shanghai
联系:

Re: [问题]求助关于cp命令

#9

帖子 nihui » 2008-06-17 14:37

ffsxsy 写了:
BigSnake.NET 写了:
ffsxsy 写了:
BigSnake.NET 写了:
ffsxsy 写了:我在a文件夹下有26个字文件夹,每个文件夹有很多小文件,总数大概2万多,怎么用命令把这所有的2万个文件复制到一个文件夹b下
是要打散文件夹吗

就是说 b 下没有 a 下的文件夹结构, 只有文件
是这样的

代码: 全选

cd a && find -type f -exec cp -iv {} ../b/ \;
能不能解释一下
find -type f -exec cp -iv {} ../b/ \
,看起来好复杂

查找类型为文件的文件,然后把找到的文件复制到 b 目录去,进行复制的提示~
.

私人空间
附有 Magic Linux 2.1 最新开发日志~


미안하다, 사랑한다


欢迎来 #xfce-cn 中文频道~~
头像
greco
帖子: 2487
注册时间: 2007-04-06 10:24
来自: ~/Shanghai

#10

帖子 greco » 2008-06-17 14:39

$ cd a
$ find -type f -> list all file (include path)
$ cp -iv {file} ../b/

-i 提示是否覆盖文件
-v 在复制前印出文件名.
http://silenceisdefeat.com/~greco

代码: 全选

''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d
头像
ffsxsy
帖子: 779
注册时间: 2007-11-04 16:32

#11

帖子 ffsxsy » 2008-06-17 15:37

都是牛人!最后一个问题
cd a && find -type f -exec cp -iv {} ../b/ \;
最后边分号前的“\”是什么意思?
amd x2 250
amd 785g主板
2g ddr3 1333内存
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#12

帖子 BigSnake.NET » 2008-06-17 17:58

ffsxsy 写了:都是牛人!最后一个问题
cd a && find -type f -exec cp -iv {} ../b/ \;
最后边分号前的“\”是什么意思?
man find

代码: 全选

       -exec command ;                                                          
              Execute  command;  true  if 0 status is returned.  All following  
              arguments to find are taken to be arguments to the command until  
              an  argument  consisting of `;' is encountered.  The string `{}'  
              is replaced by the current file name being processed  everywhere  
              it occurs in the arguments to the command, not just in arguments  
              where it is alone, as in some versions of find.  Both  of  these  
              constructions might need to be escaped (with a `\') or quoted to  
              protect them from expansion by the shell.  See the EXAMPLES sec-  
              tion  for examples of the use of the `-exec' option.  The speci-  
              fied command is run once for each matched file.  The command  is  
              executed  in  the  starting  directory.    There are unavoidable  
              security problems surrounding  use  of  the  -exec  option;  you  
              should use the -execdir option instead.                
注意有个 ; , 这个 ; 是给 find 的, 所以要转义

相当于 find -type f -exec cp -iv {} ../b/ ";"
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复