复制目录的所有文件夹中的文件

时间:2017-05-29 04:31:09

标签: linux bash

给定源文件路径和目标路径。如何编写shell脚本来复制目标目录的所有文件夹中的源文件?

2 个答案:

答案 0 :(得分:2)

您不需要脚本。使用cp -R进行递归复制:

cp -R source_path dest_path

要在保留上次修改时间等文件属性的同时执行递归复制,请同时使用-p选项:

cp -Rp source_path dest_path

来自man cp

 -R
     

如果source_file指定了一个目录,则cp会复制该目录以及该点连接的整个子树。如果   source_file以/结尾,目录的内容被复制   而不是目录本身。此选项也会导致符号化   链接被复制,而不是间接通过,以及cp到   创建特殊文件而不是将它们复制为普通文件。   创建的目录具有与相应源相同的模式   目录,未经过程'umask修改。

答案 1 :(得分:0)

听起来您想要将单个文件复制到目标目录下的所有子目录中(并进入目标目录本身)。如果这是正确的,那么:

find $targetdir -type d -exec cp $sourcefile {} \;