循环并提取与路径匹配的文件

循环并提取与路径匹配的文件

我目前在一个有许多目录的目录中。

$ ls
the bad icons 100                 the games icons 100
the beach & camping icons 100          the halloween icons 100

如何提取所有与以下路径匹配的 png 并将它们输出到目录中?

/{iconPackFolderName}/png/colored/512x512/*.png

答案1

你试过这个吗

mv /{iconPackFolderName}/png/colored/512x512/*.png {TargetDirectory}

如果收到文件太多且命令太长的消息,请尝试此操作

echo /{iconPackFolderName}/png/colored/512x512/*.png | xargs mv --target-directory {TargetDirectory}

答案2

由于您已经在目录中,因此您可以使用.find:

find . -path "*/png/colored/512x512/*.png" -exec mv -t TARGETDIR {} +

如果您想先查看找到的文件,请删除-exec后面的 and (或将其替换为| less),find 会默认将文件名输出到 stdout,如下所示:

find . -path "*/png/colored/512x512/*.png" | less

您可能希望在覆盖之前提示mv选项-i, --interactive,以防出现冲突的文件名。

相关内容