2

iTunesが台無しにした音楽フォルダーを修正しようとしています。

だから私が必要なのは、ファイルを移動するためのスクリプトです:

音楽\アーティスト\アルバム名\アーティスト - タイトル.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}/ にあるべきですか?

4

4 に答える 4

2

ここで何か不足していますか、それともmvあなたが望むものを達成できませんか? あなたの質問に基づいて、これはうまくいくはずです:

mv music/*/* newmusic/
于 2011-02-13T15:26:11.413 に答える
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
于 2011-03-20T13:36:20.733 に答える
1
for artist in music/*; do
  if [[ -d "$artist" ]]; then
    for album in $artist/*; do
      mv "$album/*" "newmusic/${album##*/}/"
    done
  fi
done
于 2011-03-08T04:54:39.397 に答える
0

1.cd作業ディレクトリへ

2.find music/Artist -type d -maxdepth 0 -exec mv {} newmusic/ \;トリックを行う必要があります。

したくない場合mvは、 mv を に置き換えることができますcp -r

于 2011-02-13T16:03:49.347 に答える