ファイルをコピーしてファイル名にパスを追加します。

ファイルをコピーしてファイル名にパスを追加します。

mp3ファイルをディレクトリからフラッシュドライブにコピーしたいです。これは次のディレクトリ構造に保存されますArtist/Album/Track.mp3。私の車のmp3プレーヤーが不都合なので、フラッシュドライブのルートディレクトリにファイル名がArtist-Album-Track.mp3

ベストアンサー1

forパラメータ拡張を介してさまざまな要素を抽出する単純なループがこれを行います。

for file in */*/*.mp3;
do
  artist=${file%%/*}
  rest=${file#*/}
  album=${rest%%/*}
  track=${rest#*/*}
  cp -- "$file" /flash/drive/"${artist}-${album}-${track}"
done

最初の拡張は、ファイルの終わりから最初のスラッシュ(作成されたアーティスト)まですべてを削除します。

2番目の拡張パックが削除されました。先頭最初のスラッシュまでの文字 - パスからアーティストを削除します。

3番目の拡張は最初の拡張と似ており、残りのパスからファイル名を削除してアルバムを残します。

4番目の拡張パックは2番目の拡張パックに似ており、アルバムを削除してファイル名のみを残します。

次に、それらをすべて一緒にダッシュし、目的の/flash/driveパスに接続します。

おすすめ記事