修正時間が未来(2098と2097)の約50個のmkvファイルを見つけました。各 mkv ファイルと同じサブフォルダに、正しい日付と同じ名前の .srt ファイルが表示されます。
touch
最も古いsrtを読み取り、同じサブフォルダ内のmkvの最後の変更日をその日付に変更するコマンドをどのように実行しますか?
home/incoming/media/berlin.festival.2019/berlin.festival.2019.mkv home/incoming/media/Exit.festival.2022/Exit.festival.2022.mkv
$ for f (*/.mkv) touch -r $f:r.srt
- $ fはキャプチャできず、メディアフォルダのルートにあるキャプチャのみをキャプチャできます。
私は次のことを試しました
$ for file in $(find /home/loop/test/*.mkv -type f) do touch -r $f:r.srt -- $f
私のテストフォルダにありますが、動作しません。
Ubuntuはオペレーティングシステムです。
~からサブフォルダーの最後の変更時刻を、その中の最も古いファイルの最後の変更時刻に変更します。、フォルダの日付を修正しました
for dir in /home/loop/test/*(NF); do
oldest=( $dir/*.(|srt|)(N.Om[1]) )
if (( $#oldest )) touch -r $oldest -- $dir
done
ls -l
srtファイルの日付を使用してフォルダを変更したので、フォルダの日付は完璧です。
ところで、srtファイルの日付に基づいてサブフォルダ内のmkvファイルの日付を変更したいと思います。
/home/loop/test # ls -l drwxrwxrwx 2 loop loop 4096 Jul 23 2019 berlin.festival.2019 drdrwxrwx 2 loop loop 4096 Jan 5 2019 Belgum.2018 drwxrwxrwx 2 loop loop 4096 Feb 21 2020 Denmark.2019 drwxrwxrwx 2 loop loop 4096 Oct 3 2020 Exit.festival.2022
答え1
のディレクトリzsh
から:/home/loop/test
for mkv in **/*.mkv(Nms-1); do
srt=( $mkv:r(.*|).srt(N.Om[1]) )
if (( $#srt )) touch -r $srt -- $mkv
done
m
最後に変更されたすべてのファイルを繰り返し1
s
(後で修正時間を持つファイルをインポートする)、同じルート名を持つファイルを探しsrt
(前にオプションがあります)、最も古いファイルを移動し(修正時間に基づいてrderとして)mtimeします。 mtimeがmkvにコピーされました。.xx
Om
O
(ところであなたのoldest=( $dir/*.(|srt|)(N.Om[1]) )
しなければならないoldest=( $dir/*.srt(N.Om[1]) )
。(|srt|)
方法何もないまたはsrt
何もない)。