Desde que você seja o proprietário do arquivo (ou raiz), você pode alterar a hora da modificação de um arquivo usando o touch
comando:
touch filename
Por padrão, isso definirá a hora da modificação do arquivo para a hora atual, mas há vários sinalizadores, como o -d
sinalizador para escolher uma data específica. Por exemplo, para definir um arquivo como sendo modificado duas horas antes do presente, você pode usar o seguinte:
touch -d "2 hours ago" filename
Se você deseja modificar o arquivo em relação ao tempo de modificação existente, faça o seguinte:
touch -d "$(date -R -r filename) - 2 hours" filename
Se você deseja modificar um grande número de arquivos, pode usar o seguinte:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
Você pode alterar os argumentos para find
selecionar apenas os arquivos nos quais você está interessado. Se você deseja atualizar apenas os tempos de modificação do arquivo em relação ao tempo atual, você pode simplificar isso para:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Este formulário não é possível com a versão relativa do tempo do arquivo, porque usa o shell para formar os argumentos touch
.
Quanto ao tempo de criação, a maioria dos sistemas de arquivos Linux não controla esse valor. Existe um ctime
associado aos arquivos, mas rastreia quando os metadados do arquivo foram alterados pela última vez. Se o arquivo nunca tiver suas permissões alteradas, pode demorar o tempo de criação, mas isso é uma coincidência. Alterar explicitamente o tempo de modificação do arquivo conta como uma alteração de metadados, portanto também terá o efeito colateral de atualizar o arquivo ctime
.
touch -d "2 hours ago" /path/*.txt
por exemplo.ctime
não é possível alterar o padrão de nenhuma maneira.ctime
como um horário de alteração de metadados são do POSIX. Não sei se os fragmentos de shell na minha resposta funcionariam com utilitários estritos de shell POSIX. Mas eles definitivamente funcionam no Ubuntu, que é o contexto para respostas neste site.gtouch
viabrew install coreutils
.Obrigado pela ajuda. Isso funcionou para mim:
No terminal, vá para o diretório para editar a data. Então digite:
Você verá um ">" depois de pressionar enter, exceto pela última vez -> "concluído".
Nota: convém alterar "201203101513"
"201203101513" = é a data que você deseja para todos os arquivos neste diretório.
Veja minha página
fonte
.ss
onde ss é o número de segundos. (Nota: isso parece não controlar tempos de sub-segundo, como nanossegundos ou milissegundos, que para mim pareciam zeros; no entanto, essa diferença era permitida para o meu caso de uso.)A maneira mais fácil - acessada e modificada será a mesma:
Onde:
Se você deseja usar,
NOW
basta soltar o-t
e o carimbo de data e hora.Para verificar se são todos iguais:
stat fileName.ext
Veja: touch man
fonte
touch
sinalizadores levou a um resultado correto. A data de modificação é ajustada, mas a data alterada e acessada é realmente alterada para NOWchanged
hora e osmodified
carimbos de data e hora?O Touch pode fazer referência à data de um arquivo por si só, sem necessidade de chamar
date
ou usar a substituição de comandos. Aqui está um pouco da página de informações do toque:Por exemplo, para adicionar 8 horas à data de um arquivo (nome do arquivo
file
citado apenas no caso de espaços, etc):Usando um loop sobre todos os arquivos no diretório atual:
Ouvi dizer que usar um
*
e deixarfor
escolher os nomes de arquivos em si é mais seguro , mas o usofind -print0 | xargs -0 touch ...
deve lidar com a maioria dos caracteres malucos, como novas linhas, espaços, aspas, barras invertidas em um nome de arquivo. (PS. Tente não usar caracteres malucos nos nomes de arquivos em primeiro lugar).Por exemplo, para localizar todos os arquivos
thatdir
cujos nomes de arquivo começam com ums
e adicionar um dia ao carimbo de data / hora modificado, use:fonte
Este pequeno script, pelo menos, funciona para mim
fonte
Faz muito tempo desde que escrevi qualquer tipo de programa Unix, mas acidentalmente defini o ano incorretamente em várias fotos de Natal, e eu sabia que se não mudasse a data de 2015 para 2014, seria um problema mais tarde .
Talvez seja uma tarefa fácil, mas não encontrei nenhuma maneira simples de fazer isso.
Modifiquei um script que encontrei aqui, que originalmente era usado para modificar a data em menos de um mês.
Aqui está o script original:
Aqui está o meu script modificado que forçou a data para o ano "2014":
Agora percebo que poderia ter feito uma versão mais genérica:
Para usar esse arquivo, você precisará escrevê-lo e
executar:
fn = seu-nome-de-arquivo-que-é-seu-comando
Exemplo
alterará a data em menos de um ano no diretório em que você está.
fonte
basta alterar a data e a hora nas configurações. salve seu arquivo, ele muda automaticamente
fonte