Bash脚本检查具有特定扩展名的文件

火花

我正在尝试构建.sh脚本来帮助我清除巨大的Gallery文件夹。这是我第一次使用bash脚本,并且运行不正常。

文件夹结构为:

gallery/
    gallery1/
        dynamic/
        thumbs/
        oldfile.jpg_backup
        oldfile.jpg
    gallery2/
        dynamic/
        thumbs/
        oldfile.jpg_backup
        oldfile.jpg

.. 等等。

这是应该如何工作的:

  1. 将在名为“ gallery”的主文件夹中运行
  2. 进入每个文件夹(gallery1,gallery2等)
  3. 检查子文件夹是否包含另一个称为thumb或dynamic的子文件夹,如果是,则应将其删除
  4. 检查文件夹中是否包含扩展名为“ .jpg_backup”的文件
  5. 如果是,它将删除所有常规.jpg文件
  6. 它将als .jpg_backups重命名为.jpgs

我以这种方式尝试过,但是我挂在了“ if [DIRECTORY]”行上。因为我不知道该如何做,所以这是纯粹的弥补。任何帮助是极大的赞赏

for f in ~/gallery/*;
    do

    [ -d /thumbs ] && rm -r thumbs/ && echo Thumbs deleted...

    [ -d /dynamic ] && rm -r dynamic/ && echo Dynamic deleted...


    if [ DIRECTORY == "*.jpg_backup" ]
        then 
            rm *.jpg
            rename 's/.jpg_backup/.jpg/' *
    fi

    done;
伊姆斯基
#!/usr/bin/env bash

set -o errexit
set -o xtrace

for d in gallery/*; do
  rm -vrf "$d/thumbs" "$d/dynamic"
  if [[ -n "$(shopt -s nullglob; echo $d/*.jpg_backup)" ]]; then
    rm -rf "$d"/*.jpg
    for f in "$d"/*.jpg_backup; do
      mv -v "$f" "${f%_backup}"
    done
  fi
done

参考文献:

  • nullglob:https ://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
  • 在bash中删除后缀(jpg_backup-> jpg):http ://tldp.org/LDP/abs/html/refcards.html#AEN22828

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查文件是否在Bash中具有带正则表达式的扩展名(任何扩展名)?

递归查找具有特定扩展名的文件

如何使用package.json脚本复制具有特定文件扩展名的文件

如何在bash脚本中检查文件名的扩展名?

Gradle-删除具有特定扩展名的文件

bash中的for循环通过具有两个特定扩展名的文件

使用Chokidar监视具有特定扩展名的文件

如何为bash中具有特定扩展名的文件递归运行命令?

获取具有特定扩展名的所有文件

Bash脚本提取包含特定扩展名文件的目录

如何使用Shell脚本从特定目录创建指向具有特定扩展名的所有文件的符号链接?

使用Shell脚本来检查是否存在一个或多个具有特定扩展名的文件?

在Shell脚本中对具有特定扩展名的文件使用sed

使用批处理脚本检查文件夹中是否存在具有某些文件扩展名的文件

检查特定目录中的文件是否具有正确的扩展名?

从多个目录复制具有特定扩展名的文件

循环浏览具有特定扩展名的文件

从具有特定扩展名的文件中删除行

通过regexp删除具有特定扩展名的文件

如何附加到具有特定扩展名的文件

Python递归查找具有特定扩展名的文件

C# - 如何检查文件夹中的所有文件是否具有特定扩展名

查找具有特定扩展名的文件

使用 grep 移动具有特定扩展名的文件

删除具有特定扩展名的文件的脚本问题

打印具有特定扩展名的文件

删除具有特定扩展名的诊断文件的脚本

Bash 查找具有特定扩展名的文件,但排除文件名中具有特定关键字的文件

bash:删除许多具有相同扩展名的文件