2013-12-11 130 views
0

我需要定期从一组特定的源子目录(其中有100个)将文件复制到一个“扁平”目录结构中,即我希望从我似乎无法找到可以查看源子目录的复制方法&复制不会在目标目录中重新创建子目录文件夹结构的文件。Solaris将多个目录中的文件复制到一个目录中

任何帮助理解。

+0

在shell中,通常它足以执行类似'cp */* destination'的操作。 – opalenzuela

回答

0
sourcedir=/root/of/subdirectory/set 
destdir=/where/the/files/go 

find $sourcedir -type f -print | while read file; do cp $file $destdir; done 

或(防止重写)

find $sourcedir -type f -print | while read file; do base=$(basename $file); test -f $destdir/$base || cp $file $destdir; done 

注意,如果$ sourcedir中的任何文件或子目录的名称都包含空格,这将不起作用。

+0

Hey-那很棒:)谢谢! – user3047191

+0

'find $ sourcedir -type f -exec cp'{}'$ destdir \;'是简写:) –

+0

右:)我更喜欢循环方法,因为在大多数情况下,我想做一些类似于no-覆盖检查,并且在循环中比在find的奇怪-exec语法中更容易。 –

相关问题