【发布时间】:2019-02-22 23:35:59
【问题描述】:
我正在尝试构建一个 .sh-Script 来帮助我清理一个巨大的画廊文件夹。这是我第一次使用 bash 脚本,但它的工作不太正常。
文件夹结构是:
gallery/
gallery1/
dynamic/
thumbs/
oldfile.jpg_backup
oldfile.jpg
gallery2/
dynamic/
thumbs/
oldfile.jpg_backup
oldfile.jpg
..等等。
它应该是这样工作的:
- 将在名为“gallery”的主文件夹中运行
- 进入每个文件夹(gallery1、gallery2 等)
- 检查子文件夹是否包含另一个名为 thumbs 或 dynamic 的子文件夹,如果是,则应删除它们
- 检查文件夹中是否有扩展名为“.jpg_backup”的文件
- 如果是,则会删除所有常规 .jpg 文件
- 将 als .jpg_backups 重命名为 .jpgs
我尝试过这种方式,但我挂在“if [DIRECTORY]”线上。这是purley编造的,因为我不知道该怎么做。非常感谢任何帮助
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;
【问题讨论】:
-
很酷的脚本。但是你没有在那个脚本中
cd $f。if [ DIRECTORY == "*.jpg_backup" ]行应该做什么?它应该执行4的步骤? this 有帮助吗?if ls "$f"/*.jpg_backup >/dev/null 2>/dev/null?[ -d /thumbs检查/dire 中的thumbs目录,rm -r thumbs/删除当前工作目录中的 thumb 目录,这些不相关...