A mudança para touch
, -r
usa qualquer arquivo fornecido como referência para o timestamp a ser usado. Então, por exemplo:
$ touch -d 2012-01-01 file1
$ ll
total 0
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 file1
-rw-rw-r--. 1 saml saml 0 Feb 20 14:37 file2
Irá definir a data em file1
usando a data de 2012-01-01. Eu posso usar o timestamp do arquivo para alterar outros arquivos & diretórios.
$ touch -r file1 file{2..5}
$ ll
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 file1
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 file2
Você pode utilizar a opção -r
para fazer o que quiser.
Exemplo
Digamos que eu tenha o seguinte:
$ ll
total 12
drwxrwxr-x. 2 saml saml 4096 Feb 20 14:42 dir1
drwxrwxr-x. 2 saml saml 4096 Feb 20 14:42 dir2
drwxrwxr-x. 2 saml saml 4096 Feb 20 14:42 dir3
$ ll *
dir1:
total 0
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 1.mkv
dir2:
total 0
-rw-rw-r--. 1 saml saml 0 Feb 1 2012 2.mkv
dir3:
total 0
-rw-rw-r--. 1 saml saml 0 Mar 1 2012 3.mkv
Agora, se executarmos este comando, podemos obter o .mkv
correspondente para cada um desses diretórios e usá-lo, aplicando-o a cada diretório pai.
$ for i in dir*; do mkv=${i/dir/}.mkv; touch -r "$i/$mkv" "$i" ;done
Os resultados:
$ ll
total 12
drwxrwxr-x. 2 saml saml 4096 Jan 1 2012 dir1
drwxrwxr-x. 2 saml saml 4096 Feb 1 2012 dir2
drwxrwxr-x. 2 saml saml 4096 Mar 1 2012 dir3
EDIT # 1
Com base na sua estrutura de arquivos de exemplo, use o seguinte comando:
$ for i in *;do touch -r "$i/${i}.mkv" "$i";done
Exemplo
$ ll
total 8
drwxrwxr-x. 2 saml saml 4096 Jan 1 2012 Serpico (1960)
drwxrwxr-x. 2 saml saml 4096 Jan 1 2012 The Rite (2011)
$ ll *
Serpico (1960):
total 0
-rw-rw-r--. 1 saml saml 0 Feb 20 18:17 Serpico (1960).mkv
The Rite (2011):
total 0
-rw-rw-r--. 1 saml saml 0 Feb 20 18:17 The Rite (2011).mkv
aplicar registros de data e hora
$ for i in *;do touch -r "$i/${i}.mkv" "$i";done
$ ll
total 8
drwxrwxr-x. 2 saml saml 4096 Feb 20 18:17 Serpico (1960)
drwxrwxr-x. 2 saml saml 4096 Feb 20 18:17 The Rite (2011)
Nesse cenário, todos os arquivos .mkv
precisariam ter um nome idêntico ao diretório em que estão inseridos. Você executaria esse script enquanto estivesse dentro do diretório /cygdrive/f/movies/
.