Encontrei cerca de 50 arquivos mkv com data de modificação no futuro (anos 2098 e 2097). Vejo que os arquivos .srt com o mesmo nome carregam a data correta e estão localizados na mesma subpasta de cada arquivo mkv.
Como você emitiria um touch
comando para ler o srt mais antigo e alterar a data da última modificação do mkv na mesma subpasta para essa data?
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 não os captura, apenas os captura na raiz da pasta media
Eu tentei algo como
$ for file in $(find /home/loop/test/*.mkv -type f) do touch -r $f:r.srt -- $f
na minha pasta de teste, mas não está funcionando.
Ubuntu é o sistema operacional.
De Alterar o horário da última modificação das subpastas para o arquivo mais antigo interno , fixei as datas da pasta com
for dir in /home/loop/test/*(NF); do
oldest=( $dir/*.(|srt|)(N.Om[1]) )
if (( $#oldest )) touch -r $oldest -- $dir
done
ls -l
tem data perfeita agora para as pastas porque já consertei usando datas de arquivos srt.
Mas eu gostaria de alterar a data dos arquivos mkv dentro das subpastas com base na data dos arquivos srt.
/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
Em
zsh
, de dentro do/home/loop/test
diretório:Percorreria todos os arquivos
m
odificados pela última1
s
vez há menos de um segundo (a idéia é obter aqueles com um horário de modificação no futuro), encontraria ossrt
arquivos (com um opcional.xx
antes) com o mesmo nome de raiz, pegaria o mais antigo (Om
paraO
ordenar por hora de modificação) e copie seu mtime para o mkv.(Aliás, você
oldest=( $dir/*.(|srt|)(N.Om[1]) )
deveria seroldest=( $dir/*.srt(N.Om[1]) )
.(|srt|)
significa nada ou nadasrt
) .