我尝试修复我的音乐文件夹,itunes搞砸了。
所以我需要的是从以下位置移动文件的脚本:
music \ Artist \专辑名称\艺术家 - title.mp3
将文件移至
newmusic \专辑名称\艺术家 - title.mp3。
我尝试了以下这一行,但没有奏效。
find music -type f -exec bash -c 'ext="${0##*.}"; base="$(basename "$0" ."${ext}")"; dirs="$(dirname "$0" | cut -d '/' -f 2,3)"; new="newmusic/${dirs}/${base}.${ext}"; cp "$0" "${new}"' {} \;
“cut -d”/' - f 2,3“是否应该在new =”newmusic / $ {{dirs} cut -d'/'-f 2,3} / 有人可以帮忙吗?提前谢谢..
答案 0 :(得分:2)
我在这里遗漏了什么,或者mv
无法达到你想要的效果吗?根据您的问题,这应该有效:
mv music/*/* newmusic/
答案 1 :(得分:1)
for artist in music/*; do
if [[ -d "$artist" ]]; then
for album in $artist/*; do
mv "$album/*" "newmusic/${album##*/}/"
done
fi
done
答案 2 :(得分:1)
欺骗,只要避免'-exec bash -c',你最终会得到不可更改的过度引用保护代码。
取而代之的是:
find -name .mp3 | while read file
do
# Play with "$file"
# Don't play with $file without doubles quotes, keep spaces in mind
# Don't play with '$file', it'a common error ^^
done
答案 3 :(得分:0)
1. cd
到您的工作目录
2. find music/Artist -type d -maxdepth 0 -exec mv {} newmusic/ \;
应该做到这一点。
如果您不想mv
,则可以用cp -r
替换mv。