Linux listando arquivos entre duas datas sem o comando touch

3

Eu preciso de um comando que listará os arquivos entre a data e a hora fornecidas (YYYYMMDDHHMMSS - format) em um arquivo de texto.

Eu não quero usar o comando touch como problema de permissão de criação.

    
por Mano 21.05.2013 / 12:28

2 respostas

4

Você não precisa usar touch se tiver uma versão recente de uma versão recente do GNU find (> = v4.3.3). Com isso você pode fazer:

find /media/WD/backup/osool/olddata/ -newermt 20120101T1200 -not -newermt 20130101T1400

Por favor, note o T entre o dia e as horas.

Se você quiser repetir usando touch para criar arquivos de referência para -newer : você pode colocá-los em qualquer lugar onde possa escrever ( /var/tmp ?), desde que especifique o caminho completo para -newer . Então você ainda pode encontrar um lugar onde você tenha permissões.

    
por 21.05.2013 / 13:04
3

com zsh :

autoload age
ls -ldrt -- **/*(e{age 2013/03/06:13:20:00 2013/05/18:11:00:00})

Veja:

info -f zsh --index-search=age

para detalhes.

(note que será muito menos eficiente do que a solução GNU find da Anthon, pois irá analisar essas datas, fazer 2 lstat s para cada arquivo e classificar a lista de arquivos (você pode evitar a última parte adicionando oN para a lista de qualificadores de globbing; use D para incluir dotfiles)).

    
por 21.05.2013 / 13:27