【发布时间】:2023-03-25 03:05:01
【问题描述】:
我正在尝试整理我的音乐收藏的专辑封面,出于 XBMC 等原因以及我个人基于强迫症的原因。为此,我想遍历我的音乐收藏中的每个文件夹(music 中也有文件,因此$(find . -type d)。我检查每个文件夹是否存在 jpeg。如果存在,则将其复制为称为cover.jpg。如果没有找到jpeg,则应将文件夹名称添加到列表中,然后我将自己搜索google。我正在使用的代码如下。
#!/bin/bash
IFS=$'\n'
touch missing
cd /cygdrive/d/music
for i in $(find . -type d)
do cd $i
if [ -e '*.jpg' ]
then
for j in *.jpg
do cp $j 'cover.jpg'
done
else
cd ..
$i >> missing
fi
done
问题
-
cd $i总是失败,因为目录不存在。 -
$i >> missing总是失败,权限被拒绝错误,但是ls -l missing给出-rwxrwxrwx+ 1 Username None 0 Sep 13 16:45 missing
更新:
在尝试了几次迭代以使脚本正常工作后,我不得不放弃并简单地使用这个Album Art Downloader,事后看来这是显而易见的事情。我用修改后的脚本将答案标记为已接受,因为它让我更接近我所知道的解决方案。
【问题讨论】:
标签: bash loops scripting cygwin