sed
que em qualquer implementação. O comando
touch -t 19700101 configure.ac
informa touch
para definir o timestamp para uma data falsa (porque apenas 8 dígitos são fornecidos) usando
- MM = 19
- DD = 70
- hh = 01
- mm = 01
Você provavelmente pretendia
touch -t 197001010000 configure.ac
(8 dígitos para 19700101, mais 4 dígitos para 0000), embora você possa ter problemas de fuso horário com isso. Em qualquer caso, é improvável que seja necessário redefinir o registro de data e hora de um arquivo até o momento. Eu simplesmente redefiniria o valor original.
Por exemplo (geralmente faço isso com cpd ), pode-se escrever um script para copie o registro de data e hora do arquivo original para o arquivo editado. Aqui está um exemplo de script que funciona para o OSX:
#!/bin/sh
usage() {
echo "usage: $0 source target" >&2
exit 1
}
[ $# = 2 ] || usage
[ -L "$1" ] && usage
[ -L "$2" ] && usage
[ -f "$1" ] || usage
[ -f "$2" ] || usage
SOURCE=$(stat -t "%Y%m%d%H%M.%S" -f "%Sm" "$1")
ls -l $2
touch -t "$SOURCE" "$2"
ls -l $2
Curiosamente (a linha de comando stat
é não padronizada), a versão OSX de stat
é mais adequado para esta aplicação em particular do que o Linux stat
. Para o Linux, pode-se fazer algo semelhante obtendo o registro de data e hora de uma listagem ls -l
e usando a opção -d
não padrão de touch
para aplicar o carimbo de data / hora.