网站搜索

如何在 Linux 中将文件复制到多个目录


在学习 Linux 的过程中,新手不断地输入多个命令来完成一项简单的任务始终是常态。这是可以理解的,尤其是当人们刚刚习惯使用终端时。

然而,当您期待成为 Linux 高级用户时,学习我所说的“快捷命令”可以显着减少浪费时间的倾向。

在本文中,我们将解释一种简单的方法,使用单个命令将文件复制到 Linux 中的多个目录中。

在Linux中,cp命令用于将文件从一个目录复制到另一个目录,最简单的使用语法如下:

cp [options….] source(s) destination

或者,您还可以使用高级复制命令,该命令在 Linux 中复制大文件/文件夹时显示进度条。

考虑下面的命令,通常,您会键入两个不同的命令将同一文件复制到两个单独的目录中,如下所示:

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

假设您要将特定文件复制到最多五个或更多目录中,这意味着您必须键入五个或更多cp 命令

要解决这个问题,您可以使用 echo 命令、pipexargs 命令以及 cp 命令,格式如下:

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

在上面的表单中,目录 (dir1,dir2,dir3…..dirN) 的路径被回显并通过管道作为 xargs 命令的输入,其中:

  1. -n 1 – 告诉 xargs 每个命令行最多使用一个参数并发送到 cp 命令。
  2. cp – 用于复制文件。
  3. -v – 启用详细模式以显示复制操作的详细信息。

尝试阅读 cpechoxargs 命令的手册页,以查找有用的高级使用信息:

man cp
man echo
man xargs

就这样,您可以通过下面的评论表向我们发送与该主题相关的问题或任何反馈。您可能还想阅读有关进度命令的信息,该命令有助于监控(cpmvdd、tar 等)的进度。当前在 Linux 中运行的命令。