【问题标题】:Bash script to move all png files in folder and its subfolders to another directory?Bash脚本将文件夹及其子文件夹中的所有png文件移动到另一个目录?
【发布时间】:2023-03-31 04:15:01
【问题描述】:

在 ~/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


【解决方案1】:

如果你的 bash 足够新,你也可以使用globstar:

cd ~/Desktop/a || exit 1
shopt -s globstar
mv -- **/*.png ~/Desktop/new

或者(如果有太多文件无法容纳在单个命令行中):

shopt -s globstar
for f in ~/Desktop/a/**/*.png; do
    mv -- "$f" ~/Desktop/new
done

【讨论】:

    【解决方案2】:

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

    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/
    

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 2011-09-09
      • 2019-10-27
      • 2011-04-24
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多