如何将文件复制到Linux上的多个位置

您可以运行一系列Linux命令将多个文件复制到文件夹或将单个文件复制到多个文件夹,但是可以通过使用XARGS,LOOPS和脚本来节省时间和麻烦。

  • 在脸书上分享
  • 分享到Twitter
  • 分享LinkedIn
  • 分享Reddit
  • 通过电子邮件分享
  • 打印资源
数据文件
戴尔

使用一系列命令将文件复制到多个位置或许多文件为单个位置可能很耗时,但是有一些选择可以加快该过程。这篇文章解释了其中一些。

这样的多个命令可以将单个文件复制到系统上的一系列目录:

$ cp myfile dir1 $ cp myfile dir2 $ cp myfile dir3

使任务更容易的一种方法是键入第一个命令,然后仅通过指定所需的更改来重复命令。此方法依赖于文件或目录名称是否足够相似,仅替换了名称的某些部分。

#单文件到多个dirs#多个文件到单个dir $ cp myfile dir1 $ cp myfile1 dir $^1^2^$^$^1^1^cp myfile dir2 cp myfile2 cp myfile2 dir $^2^3^$^2^2^3^^CP myfile dir3 cp myfile3 dir

另一个选择是使用Xargs命令将文件复制到多个目录:

$ echo dir1 dir2 dir3 |XARGS -N 1 CP -V myfile'myfile' - >'dir1/myfile''myfile' - >'dir2/myfile''myfile' - >'dir3/myfile'

在这种情况下,Xargs命令使用您提供的信息(目录名称)来组合将文件复制到三个目录所需的三个命令中的每个命令。这-v参数确保您将看到要复制的文件列表。这-n确保每个命令将仅使用一个由回声在每个命令中的命令Xargs运行。作为比较,如果您运行这样的命令,则每行会看到三个参数:

$ ECHO 1月1月2月2月3月4月5月7月7月10月10月12月12月12月|XARGS- n 1月3日2月3日3月3月3月4月5月7月7月10月11月12月12月

使用的限制Xargs运行多个命令是您使用的参数使用回声将始终将运行的命令的末尾处理,因此您不能使用相同的技术将三个文件复制到一个目录。这CP命令要求最终字符串是目标目录,无法获取Xargs重新排列命令。显然,下面的命令类似于命令。

$ echo file1 file2 file3 |XARGS -N 2 CP DIR1 CP:目标'File2'不是目录CP:-R未指定;省略目录“ dir1”

如果您尝试了下面的命令,那么您也会遇到问题。仅列表中的最后一个目录才能获得文件的副本。

$ CP XYZ DIR1 DIR2 DIR3 CP:-R未指定;省略目录'dir1'cp:-r未指定;省略目录“ dir2”

另一个选择是使用为了像其中之一的命令循环通过文件:

$ for file1 file2 file2 file3 file3 $ for`ls file中的文件?' - >'dir1/file1''file2' - >'dir1/file2''file2' - >'dir1/file2/file2''file3' - >'dir1/file3'file3'file3' - >'dir1/file1/file3'

再次,-v用于显示CP命令,以便您可以轻松地看到命令正在执行您的期望。

您也可以使用与上面看到的类似命令将多个文件复制到当前或其他目录中。

$ for在myfile1 myfile2 myfile3> do> cp -v $ file backups>完成'myfile1' - >'backups/myfile1''myfile2' - >'backups/myfile2'myfile2''myfile3' - >'备份

如果您经常更新重要的文件并想将文件保存到备份文件夹中,则可能应该将此命令转换为脚本,从而使您误认为命令的可能性更低,并且肯定会使过程变得更加简单。

#!/bin/bash在myfile1 myfile2 myfile3 do cp -v $文件备份中完成的文件

像下面的脚本一样,将您列出的任何文件作为参数,并将其复制到备份文件夹。但是,由于每个字符串被视为单独的文件名,因此文件名不能包含空白。

#!/bin/bash如果[$#!= 0]#如果提供的文件名为$* do cp -v $ file backups in fi fi fi

通过脚本运行克朗将允许您自动备份已更新的文件。检查是否crontab已安装在系统上,尝试这样的命令:

$ crontab $ crontab -l bash:crontab:找不到命令...

此命令将检查是否克朗安装在Fedora上:

$ rpm -q cronie package cronie尚未安装

Cronie是供应的包裹克朗和相关服务。要在Fedora上安装它,我们是这样的命令:

$ sudo dnf安装cronie

之后,您可以检查crontab这样的命令:

$ crontab/usr/bin/crontab

如果你没有crontab尚未建立的文件,当您尝试查看它时,您会看到这一点:

$ crontab -l无孔板用于用户名

如果这样做,您会看到类似的内容显示已设置的命令以及它们在运行时。

$ crontab -l 0 0 23 * */usr/bin/cp/home/username/bin/cpfiles

在上面的示例中CPFILE剧本将在晚上11点举行。每天晚上都会提供crontab守护程序(克朗德) 在跑。

包起来

当然有很多方法可以复制一系列文件而无需输入每个文件CP单独命令或文件名。使用Xargs命令,循环和脚本可以为您节省很多时间和麻烦。

有关的:

版权所有©2022 IDG Com足球竞彩网下载munications,Inc。

企业网络中的10家最强大的公司2022