首页 > 解决方案 > Bash脚本将文件夹及其子文件夹中的所有png文件移动到另一个目录?

问题描述

在 ~/Desktop/a/ 中,我有 .png 文件,其中还有一些子文件夹也有 .png 文件。

我想将所有这些 .png 文件移动到另一个文件夹。

到目前为止,这是我的代码。它运行,但没有任何东西放入目标文件夹。问题是什么?

#!/bin/bash
cd ~/Desktop/a/
for f in $(find . -type f -name "*.png")
do 
    mv $f ~/Desktop/new/
done

标签: bash

解决方案


我猜这些图像文件名可能包含空格或其他特殊字符。

find ~/Desktop/a/ -type f -name "*.png" -exec mv "{}" ~/Desktop/new/ \;

或者

find ~/Desktop/a/ -type f -name "*.png" -print0 | xargs -0 -I{} mv "{}" ~/Desktop/new/

推荐阅读