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

您可以运行一系列的Linux命令来复制多个文件到一个文件夹或一个文件复制到多个文件夹,但你可以节省时间和麻烦通过使用xargs,循环和脚本。

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
数据文件
戴尔

使用一系列的命令将文件复制到多个位置或数量的文件到一个位置可能需要耗费一些时间,但也有选项来加快这一进程。这篇文章解释了其中一些。

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

美元cp myfile dir1 cp myfile dir2 cp myfile dir3美元

使这项任务变得更加简单的一种方法是输入第一个命令,然后重复命令仅指定所需的更改。这种方法依赖于文件或目录名称是否足够相似替换只有一部分的名字。

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

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

美元回声dir1 dir2 dir3 | xargs - n 1 cp - v myfile“myfile”- >“dir1 / myfile”“myfile”- >“dir2 / myfile”“myfile”- >“dir3 / myfile”

在这种情况下,xargs命令使用您提供的信息(目录名)组成的三个命令要求将文件复制到三个目录。的- v参数确保您将会看到一个列表的文件被复制。的- n确保每个命令将只使用所提供的参数之一回声在每个命令的命令xargs运行。作为对比,如果你用这样的一个命令,你会看到每行三个参数:

美元回声1月2月3月4月5月6月7月8月9月10月11月12月| xargs - n 3 1月2月3月4月5月6月7月8月9月10月11月12月

限制使用xargs运行多个命令的参数你发送命令使用回声总是会附加到运行的命令,所以你不能使用相同的技术来将三个文件复制到一个目录中。的cp命令要求目标目录和最后一个字符串没有办法xargs重新排列的命令。显然类似下面的命令将不会工作。

美元回声file1 file2 file3 | xargs - n 2 cp dir1 cp:目标“file2”不是一个目录cp:没有指定- r;删除目录“dir1”

如果你尝试了如下所示的命令,你也会遇到问题。只有最后一个目录列表中会得到一个文件的副本。

美元cp xyz dir1 dir2 dir3 cp:没有指定- r;省略目录的dir1 cp:没有指定- r;删除目录“dir2”

另一个选择是使用一个命令像其中一个遍历文件:

对文件file1 file2 file3美元的文件' ls文件?”> > >做cp - v $文件dir1 > cp - v $文件dir1 > >完成完成“file1”- >“dir1 / file1“file1”- >“dir1 / file1“file2”- >“dir1 / file2“file2”- >“dir1 / file2“file3”- >“dir1 / file3“file3”- >“dir1 / file3”

再一次,- v用于显示的活动吗cp命令,这样你可以很容易地看到,命令是做你期望。

您还可以使用一个命令类似于上面你看到多个文件复制到您的当前或到另一个目录中。

美元的文件myfile1 myfile2 myfile3 > > cp - v $文件备份>做了“myfile1”- >“备份/ myfile1”“myfile2”- >“备份/ myfile2”“myfile3”- >“备份/ myfile3”

如果你经常更新的重要文件,想要将文件保存到备份文件夹,你应该把这个命令脚本,使它更不可能你会多线样式命令当然使过程简单得多。

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

像下面这样的一个脚本将任何文件列表作为参数,将它们复制到备份文件夹。然而,文件名称不能包含空格,因为每个字符串都被视为一个单独的文件名。

# !/bin/bash如果($ # ! = 0)#如果文件名然后在cp - v $ $ *做文件备份fi完成

通过运行一个脚本cron会让你自动备份文件更新。检查如果定时任务安装在您的系统上,命令如下:

这crontab crontab美元- l bash: crontab命令没有找到……

这个命令将检查cron在Fedora安装:

rpm - q cronie美元包cronie没有安装

Cronie的包供应cron和相关服务。在Fedora安装它,我们这样的命令:

$ sudo dnf cronie安装

在那之后,你可以检查定时任务命令如下:

美元的crontab /usr/bin/crontab

如果你没有一个定时任务文件,你会看到当你试图看:

美元crontab - l没有用户名的crontab

如果你这样做,你将会看到这样的东西显示的命令设置和运行时。

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

在上面的例子中cpfiles脚本将运行在每天晚上11点提供了crontab守护进程(crond)正在运行。

总结

确实有许多方法可以复制的一系列文件,而不必每个类型cp单独的命令或文件名。使用xargs命令、循环和脚本可以为您节省大量的时间和麻烦。

相关:

版权©2022 IDG通信公司。Raybet2

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