Com o ls
comando, é possível mostrar apenas os arquivos criados após uma data, hora específica ...?
Estou perguntando porque tenho um diretório com milhares de arquivos.
Eu quero ver todos os arquivos que foram criados desde ontem.
Eu uso, ls -ltr
mas tenho que esperar para ver todos os arquivos ...
Existe um equivalente DIRECTORY/SINCE=date
do OpenVMS?
ls
lista arquivos, mas não oferece muito para selecionar quais arquivos listar ou o formato de saída. Use globbing (caracteres curinga do shell) oufind
quando desejar selecionar arquivos por nome ou metadados (por exemplo, data).zsh
:ls -1 -- *(.m-1)
Respostas:
Você pode usar o
find
comando para encontrar todos os arquivos que foram modificados após um determinado número de dias.Por exemplo, para encontrar todos os arquivos no diretório atual que foram modificados desde ontem (24 horas atrás), use:
Observe que, para encontrar arquivos modificados antes de 24 horas atrás, você deve usar em
-mtime +1
vez de-mtime -1
.fonte
ls
aqui, Luc.-mmin 5
lista os arquivos modificados nos últimos 5 minutos.-newermt "2011-02-27 13:42"
lista os arquivos modificados desde a data especificada. Você pode usar em-exec ls --color -ld {} +
vez de-ls
obter a exibição colorida habitual (se você gosta da saída colorida ls).find . -mmin -5
Isso encontrará todos os arquivos modificados após uma data específica.
fonte
fonte
date
dizJun 03
, masls
dizJun 3
, para que isso não funcione. (2) Há uma semana, a data era 27 de maio.ls -l | grep "May 27"
Encontraria arquivos modificados naquele dia, mas também arquivos modificados em 27 de maio de qualquer outro ano - e arquivos com "27 de maio" em seu nome. (E se você acha que isso é uma preocupação totalmente falso, olhar para cima “Dezembro 10” .) (3) E, se você conseguiudate
dizerJun 2
, grepping para que iria encontrarJun 20
atravésJun 29
, mas nãoJun 2
(com dois espaços). ... (continua)ls -ltr
para obter os arquivos modificados mais recentemente no final da listagem. Se você está aguardando uma data, não há necessidade de fazer isso (exceto para obter os arquivos de 27 de maio de 2015 no final da listagem, após os arquivos de 27 de maio de 2014, 27 de maio de 2013 etc.). (5) No awk,print $2, $3
é equivalenteprint $2" "$3
e é muito mais fácil de ler - especialmente quando existem outros três níveis de cotação.ls -ltr | grep "$(date | awk '{print $2,$3}')"
Espero que isso funcione:
Aqui:
este comando acima imprime todos os nomes de arquivos criados em 1º ou 31 de maio ou após 31 de maio
se você quiser imprimir a data também no console, tente isso
Se você quiser especificar o caminho do diretório, tente isso
fonte
ls
saída. E nem todo mundo fala inglês :-)