首页 > 解决方案 > Shell / Bash - 如果我能找到文件,我怎样才能将它们复制到映射驱动器?

问题描述

我有一个命令可以在我的 linux 机器上找到所有 .png 图像文件,但是我可以添加一些东西来将每个文件复制到我设置的映射驱动器/位置吗?

查找 .png 的代码在这里。

find / -type f -exec file --mime-type {}  \; | awk '{if ($NF == "image/png") print $0 }'

机器上映射的驱动如下,通过df -h报告

/mnt/nas

标签: bashshellcifs

解决方案


如果您需要检查 MIME 类型,请在您的命令之后,通过 using 提取文件名部分并通过usingsed执行。cpxargs

find / -type f -exec file --mime-type {}  \; | awk '{if ($NF == "image/png") print $0 }' \
| sed 's/:.\+$//' | xargs -i cp -p {} /mnt/nas

如果您可以通过扩展名确定文件类型.png,则命令如下:

find / -name '*.png' -exec cp -p {} /mnt/nas \;

或者

find / -name '*.png' | xargs -i cp -p {} /mnt/nas

请注意,我只检查了 GNU bash 上的命令。


推荐阅读