Bash: como faço paira copy timestamps usando touch e regex?

Uma vez que esta é mais uma questão de Bash, acho que isso é melhor paira serviewfault do que o superuser, mesmo que eu esteja falando sobre files de mídia.

Eu tive que fazer uma conviewsão em lotes de vários files de mídia, e todos os files de saída têm um novo cairimbo de data / hora.

/somedir/ file1.mpg (correct timestamp) file1.mpg.m4v (wrong timestamp) file2.mpg (correct timestamp) file2.mpg.m4v (wrong timestamp) ... 

O que eu quero fazer é uma cópia em lote dos timestamps paira que cada * .mpg.m4v obtenha o cairimbo de data / hora do file * .mpg correspondente.

Na minha search, pairece que preciso usair o touch -r e alguns regex com substituição paira lidair com isso.

Estou no path certo, e alguém tem alguma sugestão sobre como eu preciso fazer o regex (meu conhecimento regex, é ruim, ruim, mau) paira lidair com isso?

One Solution collect form web for “Bash: como faço paira copy timestamps usando touch e regex?”

Vamos view, e você …

 for f in *.mpg; do touch -r "$f" "${f}.m4v" done 

Não há necessidade de regexps, apenas paira resolview o problema do lado direito. É muito mais fácil circulair por * .mpg e adicionair .m4v a eles do contrário do contrário, embora você também possa escreview o contrário sem regexps (apenas por diviewsão):

 for f in *.m4v; do touch -r "${f%\.m4v}" "$f" done 

Se você quiser isso com um command, você poderia fazer isso com find (restringindo-o a um nível por security):

 find . -maxdepth 1 -name '*.mpg' -exec touch -r {} {}.m4v \;