linux - 如何在 linux/bash 中通过通配符进行复制?

标签 linux bash scp cp

这是我正在尝试做的 - 假设一个源目录:

/xyz/2/file.txt
/xyz/2/crapfile.txt
/xyz/3/file.txt
/xyz/3/crapfile.txt

我想将 file.txt 复制到以下目录:

/z/2
/z/3

我喜欢这样做,但这行不通:

cp -r /xyz/*/file.txt /z/*/

为了避免单独复制东西——我可以通过以下方式做到这一点:

cp -r /xyz/2/file.txt /z/2/
cp -r /xyz/3/file.txt /z/3/

最佳答案

此命令从 xyz 复制到 z,不包括所有名为 crapfile.txt 的文件:

rsync -a --exclude=crapfile.txt xyz/ z

使用 -v(详细)选项,我们可以看到它正在进行的工作:

$ rsync -va --exclude=crapfile.txt xyz/ z
sending incremental file list
./
2/
2/file.txt
3/
3/file.txt

如您所见,复制了 file.txt 但跳过了 crapfile.txt

rsync 是一个非常强大的实用程序,有很多选项。有关详细信息,请参阅 man rsync 或任何 rsync tutorials在网络上。

关于linux - 如何在 linux/bash 中通过通配符进行复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37505390/

相关文章:

sockets - Wireshark 中的 [TCP ACKed unseen segment] 等是什么?

linux - 如何以不同的名称保存日志文件

linux - 如何在 hadoop 的 virtual box linux 中包含示例 helloworld jsp 文件?

linux - 使用带有电子邮件地址的 rsync 命令

linux - Yum 无法解决 $PATH 中现有文件的依赖关系

python - 从命令行 bash 运行时无法从 crontab 运行 bash 脚本

linux - while 循环后为空数组

linux - 来自 java 的 UUID.randomUUID() 的重复 UUID 集

python - linux 以太网驱动程序产品 ID、设备 ID 和地址

ssh - 通过 SSH 传输文件