Você poderia me informar como posso alterar a data de criação de um arquivo no Lion. Sei que existe o comando touch-t, mas isso não funciona no Lion. Algumas pessoas mencionaram outra maneira, mas acho que elas escreveram a solução na linguagem "codificador" em vez da linguagem leiga - alguém seria capaz de responder de uma maneira que um leigo possa executar?
Muito obrigado pela sua ajuda.
Respostas:
touch -t
normalmente apenas altera os tempos de modificação e acesso. Ele altera o horário de criação apenas se o horário de destino for anterior ao horário de criação original.SetFile -d
sempre altera o horário da criação.SetFile faz parte do pacote de ferramentas de linha de comando, que pode ser baixado em developer.apple.com/downloads ou nas preferências do Xcode.
fonte
+%Y%m%d%H%M.%S
(observe o ponto entre minutos e segundos)CpCreationDate
emfish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
No Mac OS X, parece haver quatro carimbos de data e hora diferentes associados a um arquivo. Estas marcas de tempo nem sempre são atualizados independentemente um do outro, mas pode ter algum controle individual com um pouco de cuidado e com o uso de
touch
,SetFile
echown
(ouchmod
). Para ver isso, vamos experimentar e criar um novo arquivo no prompt de comando#
:A primeira data listada é a hora do último acesso (
atime
), a segunda é a hora da última modificação (mtime
), a terceira é a última alteração de status (ctime
), a quarta é a hora da criação do arquivo (nascimentoBtime
), consulteman lstat
.Para modificar o tempo de acesso (
atime
) para um horário especificado, use:Para modificar o horário da modificação (
mtime
) e o horário da criação do arquivo (Btime
) para um horário especificado, use:Aparentemente, isso também atualiza automaticamente a hora da última alteração de status (
ctime
) para a hora atual do sistema!Para modificar apenas o tempo de criação / nascimento (
Btime
) para um determinado momento, use (conforme proposto por outros acima):Para modificar apenas a hora da última alteração de status (
ctime
) para a hora atual do sistema, use, por exemplo:onde
username
é o proprietário do arquivo (conforme relatado porstat
ouls -l
). Isso não altera a propriedade do arquivo, mas acessa o inode do arquivo e registra isso como uma hora da última alteração de status. Infelizmente, não é possível especificar a hora explicitamente aqui, exceto alterando a hora do computador ...Em resumo, para poder alterar os quatro registros de data e hora de forma independente, pode-se usar (nesta ordem pelos últimos 3):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[reverta para a data normal do sistema](Obviamente, redefinir a data do sistema pode não ser uma operação isenta de riscos, você foi avisado.)
fonte
O comando da linha de
touch
comando funciona no Lion, mas você precisa de um pouco de conhecimento sobre como usá-lo.Primeiro, você precisa digitar, não é um utilitário que opera graficamente em uma janela. O local em que você digita é um aplicativo chamado Terminal . Você pode encontrar isso na pasta Utilitários ou usar a pesquisa do Spotlight para encontrá-lo.
Depois de iniciá-lo, você obtém uma janela de linha de comando onde é possível digitar comandos. Só porque você está digitando não significa que tenha alguma coisa a ver com codificação, mas para alguém novo nos comandos do sistema operacional "antiquado" pode parecer um pouco intimidador.
Portanto, o comando é chamado de toque e, após o comando, você pode passar vários parâmetros, o único necessário é o nome do arquivo. Digitar o seguinte definirá a data da última modificação do arquivo para a hora atual:
Obviamente, pode ser necessário encontrar o arquivo primeiro, o que pode exigir mais comandos para chegar a ele. o comando cd ou Change Directory ajuda aqui:
Ou, você pode simplesmente adicionar o caminho completo ao arquivo como parte do comando:
O uso mais avançado do comando touch permite especificar o tempo que você deseja definir, em vez de usar o tempo de execução, definir o acesso em vez dos tempos de modificação etc. É assim que parâmetros como -t e outros fazem. Alguns definem a hora para ser a hora de outro arquivo, alguns definem para voltar ou avançar no tempo pela quantidade X ( veja aqui para mais detalhes), por exemplo:
A seguir, é apresentada nesta página, que também é uma referência útil, e um ótimo exemplo com algumas dicas para quem não se sente à vontade com os locais dos arquivos na linha de comando
Observe que isso alterará os atributos de data de modificação e de criação de data somente se seu arquivo foi criado após a data digitada. Isso ocorre porque um arquivo não pode ser modificado antes de ser criado. Se criado antes da data definida, apenas a data modificada será alterada.
fonte
touch
modifica a data modificada, não a data de criação do arquivo.touch
dos parâmetros que você forneceu acima alterou a modificação, mas não as datas de criação do meu arquivo de teste.touch
, modifica a data de criação, dependendo dos argumentos. Se você fornecer uma data de modificação anterior à data de criação do arquivo, a data de criação mudará automaticamente para o novo valor da data de modificação, pois um arquivo não poderá ser modificado antes de ser criado.creation
data. Consegui alteraraccess
emodified
datas para uma "data no passado", mas ela não modificou a data de criação. Verifique a página de manual para ver o toque, não menciona a data de criação. Sistema de arquivos: Mac OS Extended (Registrado em Diário, Criptografado). UsandoSetFile -d "$(GetFileInfo -m test.txt)" file.txt
funcionou perfeitamente.Grandes sugestões aqui, em particular a última (de Lauri Ranta, respondida em 21 de agosto às 15:21). Perfekt!
Agora eu uso um simples fluxo de trabalho do Automator para alterar vários arquivos em lote:
O script de shell é:
Isso funciona como um encanto.
fonte
A maneira mais fácil que encontrei foi criar uma nova pasta, copiar todas as subpastas da pasta acinzentada para a nova pasta e pronto, a nova pasta não está acinzentada. Você pode até fazer isso no localizador.
fonte