メディアフォルダのルートにあるすべてのmkvファイルを各mkvファイルのサブフォルダに移動する方法

メディアフォルダのルートにあるすべてのmkvファイルを各mkvファイルのサブフォルダに移動する方法

メディアフォルダのルートにあるすべてのmkvファイルを、最後に.mkv拡張子を持つmkvファイル名と同じ名前の各mkvファイルの独自のサブフォルダに移動する方法。例 home/incoming/media/ は、mkv ファイルがルートディレクトリにあるメディアフォルダです。ルートディレクトリにあるexample Ibica.festival.2020.mkvというファイルは、home/incoming/media/Ibica.festival/フォルダをインポートする必要があります。 Ibica .festival.2020 .mkv 約 300 個のファイルがあります。一部は中国語の名前、一部はロシア語のキリル文字です(状況が変わった場合)。ファイルのプロパティと日付は新しいフォルダに保存する必要があります。

試してみましたが、エラーが発生しましたが、コマンドは成功しました。 find . -name ".mkv" -exec sh -c 'mkdir "${1%.}" ; mv "$1" "${1%.*}" ' _ {} \; –

多くのファイルがいくつかの場所に移動しましたが、Ibica.festival.2020.mkv srtファイルはIbica.festival.2020.en.srtで、infoファイルはIbicaのようにmkvファイルと同じ名前の字幕と情報ファイルをどのように含めることができますか? .festival .2020.en.info

      ///media/
             /Ibica.festival.2020.mkv
             /Ibica.festival.2020.hr.srt
             /Ibica.festival.2020.sr.srt
             /Ibica.festival.2020.br.srt
             /Ibica.festival.2020.info
     ///media/
             /exit festival 2019.mkv
             /exit festival 2019.hr.srt
             /exit festival 2019.sr.srt
             /exit festival 2019.en.srt
             /exit festival 2019.info

に移さなければならない

       ///media/
               /Ibica.festival.2020/
                                   /Ibica.festival.2020.mkv
                                   /Ibica.festival.2020.hr.srt
                                   /Ibica.festival.2020.sr.srt
                                   /Ibica.festival.2020.br.srt
                                   /Ibica.festival.2020.info

       ///media/
               /exit festival 2019/
                                  /exit festival 2019.mkv
                                  /exit festival 2019.hr.srt
                                  /exit festival 2019.sr.srt
                                  /exit festival 2019.en.srt
                                  /exit festival 2019.info
                                   

答え1

まず、みんなが言ったように従うべきです。 質問ガイドそして、自分で調べてみてください。つまり、まずコマンドをテストしてからメディアページに適用してみることができます。

mkdir test && cd test
for i in {0..10};do touch file$i.mkv;done
ls | grep '\.mkv$' | while read line; do mkdir $(echo "$line" |sed 's/\.mkv$//');mv "$line" $(echo "$line" |sed 's/\.mkv$//') ;done

編集後:

ls | grep '\.mkv$' | while read line
do
    folder_name=$(echo "$line" |sed 's/\.mkv//')
    mkdir "$folder_name"
    mv "$line" "$folder_name"
    mv "${folder_name}."* "$folder_name"
done

として保存してscript.shから実行できます。./script.sh忘れないでくださいchmod +x ./script.sh。必ず保存して実行してみてくださいメディアディレクトリに

関連情報