Linux 递归地将目录的内容复制到所有目标目录

Linux 递归地将目录的内容复制到所有目标目录,linux,terminal,cp,Linux,Terminal,Cp,我有一个包含一组子目录和文件的目录。我需要递归地将这个目录的所有内容复制到另一个目录的所有子目录,也是递归地 如何实现这一点,最好不使用脚本,只使用cp命令?管道前命令的第一部分指示tar创建当前目录中所有内容的存档,并将其写入标准输出–代替文件名通常表示stdout tar cf - * | ( cd /target; tar xfp -) 括号内的命令使shell将目录更改为目标目录,并从标准输入中卸载数据。由于cd和tar命令包含在括号内,因此它们的操作一起执行 tar extracti

我有一个包含一组子目录和文件的目录。我需要递归地将这个目录的所有内容复制到另一个目录的所有子目录,也是递归地


如何实现这一点,最好不使用脚本,只使用cp命令?

管道前命令的第一部分指示tar创建当前目录中所有内容的存档,并将其写入标准输出–代替文件名通常表示stdout

tar cf - * | ( cd /target; tar xfp -)
括号内的命令使shell将目录更改为目标目录,并从标准输入中卸载数据。由于cd和tar命令包含在括号内,因此它们的操作一起执行

tar extraction命令中的-p选项指示tar保留权限和所有权信息,如果可能的话,允许用户执行该命令。如果以超级用户身份运行该命令,则默认情况下会启用该选项,并且可以忽略该选项

您也可以使用以下命令,但它似乎比tar慢得多


管道之前的命令的第一部分指示tar创建当前目录中所有内容的存档,并将其写入标准输出–代替文件名通常表示stdout

tar cf - * | ( cd /target; tar xfp -)
括号内的命令使shell将目录更改为目标目录,并从标准输入中卸载数据。由于cd和tar命令包含在括号内,因此它们的操作一起执行

tar extraction命令中的-p选项指示tar保留权限和所有权信息,如果可能的话,允许用户执行该命令。如果以超级用户身份运行该命令,则默认情况下会启用该选项,并且可以忽略该选项

您也可以使用以下命令,但它似乎比tar慢得多


你不能。cp可以复制多个源,但只能复制到单个目标。您需要安排多次调用cp—每个目的地一次—来完成您想要做的事情;正如你所说,使用循环或其他工具。

你不能。cp可以复制多个源,但只能复制到单个目标。您需要安排多次调用cp—每个目的地一次—来完成您想要做的事情;正如您所说,使用循环或其他工具。

您可以在脚本中编写,但不必这样做。只需在终端中逐行写入:

# $TARGET is the directory containing subdirectories where you want to STORE the copies
# $SOURCE is the directory containing the subdirectories you want to COPY

for dir in $(ls $TARGET); do
   cp -r $SOURCE/* $TARGET/$dir
done

仅使用cp并在bash和zsh上运行。

您可以在脚本中编写,但不必这样做。只需在终端中逐行写入:

# $TARGET is the directory containing subdirectories where you want to STORE the copies
# $SOURCE is the directory containing the subdirectories you want to COPY

for dir in $(ls $TARGET); do
   cp -r $SOURCE/* $TARGET/$dir
done
只使用cp并在bash和zsh上运行。

你是说像cp-r?你是说像cp-r?