Então, eu quero exibir (por ls
exemplo) todos os arquivos que foram alterados nos últimos sete dias. Se eu estiver na minha pasta docroot, ele poderá parecer "mais profundo".
Por exemplo:
File Last changed
docroot
|- myfile1 30.11.2015
|- myfile2 10.11.2015
|- MySub
|-sub1 30.11.2015
|-sub2 10.11.2015
Portanto, o ls
(ou o que couber) deve gerar myfile1
e (se possível)
MySub/sub1
.
Isso é possível com um comando?
command-line
search
ls
DasSaffe
fonte
fonte
find
temls
opção para que você poderia apenas fazerfind . -type f -mtime -7 -ls
find ... -exec ls -l {} +
que executa comls -l
muito mais eficiência - menos vezes com vários parâmetros. Esta é uma opção padrãofind
especificada pelo POSIX.Com
zsh
:**/*
procurará arquivos recursivamente a partir do diretório atual(.m-7)
é qualificador global em que.
indica arquivo normal,m-7
indica arquivos que foram modificados nos últimos 7 diasfonte
O comando a seguir funciona um sonho no Mac OSX - talvez também no ubuntu…
Ele localiza arquivos na árvore de diretórios atual que foram modificados nos últimos 7 dias, produz a data de modificação + hora e caminho, classificados primeiro pela última vez.
Exemplo de saída:
Eu ficaria grato por qualquer feedback dos usuários do Ubuntu.
fonte
Não é exatamente o que foi pedido ... mas muito mais fácil de lembrar ...
ou
fonte
7 dias que são 60 segundos * 60 minutos * 24 horas * 7 dias = 604800 segundos
Descubra a data atual em segundos (hora da época do Unix):
Subtraia os 7 dias em segundos:
Agora assuma o
stat
comando e imprima as estatísticas de todos os arquivos no formato "nome + tempo em segundos" e useawk
para cortar os arquivos cuja hora de modificação é maior que a data que calculamosParticularmente interessantes são os três últimos arquivos, porque sei que os estava trabalhando há menos de sete dias. Então eu sei que funciona
fonte
awk '$2 > 1448271265 {print $0}'
você pode dizer diretamenteawk '$2 > 1448271265'
. Em uma condição verdadeira, o awk imprime a linha atual como uma ação padrão.