如何在Linux上使用一个命令将文件复制到多个目录
无论使用命令行还是图形方式,在 Linux 操作系统中复制文件都很简单。然而,一些用户更喜欢使用命令行来执行几乎所有任务。命令行不仅提供了执行任务的简单且快捷的方式。 cp 是 Linux 中的命令,用于将文件从一个位置复制到另一个位置。但是如果我们需要将文件复制到多个位置该怎么办?我可以通过一种方法展示如何在 Linux 中实现这一目标。
我们已在 Debian 10 操作系统上运行本文中提到的命令和过程,但它们也适用于任何其他 Linux 发行版。
让我们首先看看如何使用 cp 命令将文件从一个位置复制到另一个位置。使用 cp 命令复制文件的一般语法是:
cp ~[/location/sourcefile] ~[/destinationfolder]
例如,将 testfile1 从 Documents 目录复制到 Downloads 目录。为此,我在终端中运行以下命令:
cp ~/Documents/testfile1 ~/Downloads/
现在,当我们必须将文件复制到多个位置时,我们必须多次运行命令。例如,在下面的示例中,我们将 testfile1 从文档复制到两个不同的位置,即下载和桌面。为此,我们必须在终端中运行 cp 命令两次:
cp ~/Documents/testfile1 ~/Downloads/
cp ~/Documents/testfile1 ~/Desktop/
使用 echo 命令将文件复制到多个位置
使用 cp 命令将文件复制到两个位置仍然是可以接受的,但假设我们必须将文件复制到四个、五个或更多位置。在这种情况下,我们有另一个解决方案,即使用 echo 命令。该命令的语法为:
echo [destination1] [destination2] [destiantion3]..... | xargs -n 1 cp [/location/sourcefile]
echo 命令通常用在 shell 脚本中来打印消息或输出到屏幕。但在此示例中,我们将使用它通过 | 将输出提供给 xargs 命令。象征。 xargs 将从 echo 命令获取输入 3 次,并执行 cp 操作 3 次,将测试文件复制到 3 个不同的位置。上述命令中的 n 标志将告诉 cp 命令一次采用一个参数。
请注意,此命令将覆盖目标目录中已存在的同名文件。因此,最好已经对重要文件进行备份。
在下面的示例中,我们使用此命令将 testfile1 从 Documents 目录复制到三个不同的目录:Desktop、Downloads 和 Music 目录。为此,我们运行了以下命令:
$ echo [~/Desktop] [~/Downloads] [~/Music] | xargs -n 1 cp [/location/sourcefile]
这就是全部内容了!现在我们已经学会了如何使用一个命令将一个文件复制到多个目录。因此,现在您不必编写多个命令来执行将一个文件复制到多个位置这一最简单的任务。