Lista de arquivos conforme seu uso

6

O que eu faço se eu quiser a lista de arquivos de algum diretório específico, de acordo com seu uso?

Ou seja, eu quero uma lista de arquivos em ordem crescente de acordo com seu último uso em relação ao tempo. Nesse caso, o arquivo que foi acessado pela última vez deve ser listado primeiro.

    
por Avani badheka 04.10.2016 / 11:28

2 respostas

9

Você pode usar

ls -l --time=atime --sort=t

Explicação:

  • ls -l lista os arquivos com o formato de lista detalhado
  • --time=atime --sort=t define a ordem de classificação para a hora do último acesso

Exemplo:

$ touch foo bar foobar
$ ls -l
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foo
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foobar
$ sleep 60; touch baz
$ ls -l 
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt  4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foo
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foobar

Após alguns minutos:

$ touch -a foo # sets atime to cuurent time
$ ls -lt
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt  4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foobar
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 bar
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foo
$ ls -lt --time=atime
insgesamt 0
-rw-r--r-- 1 Wayne users 0 Okt  4 12:01 foo
-rw-r--r-- 1 Wayne users 0 Okt  4 11:58 baz
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 foobar
-rw-r--r-- 1 Wayne users 0 Okt  4 11:56 bar

Conclusão:

ls -lt --time=atime

faz o que você precisa

    
por Wayne_Yux 04.10.2016 / 11:34
5

Supondo que não haja nome de arquivo com nova linha no nome, faça:

stat -c '%X %n' * | sort -k1,1rn | cut -d' ' -f2-
  • stat -c '%X %n' * imprime os arquivos no diretório atual com o tempo de acesso (precisamente relatime ) na Epoch como primeira coluna e o nome do arquivo como próximo

  • sort -k1,1rn classifica isso pelo primeiro campo (tempo)

  • cut -d' ' -f2- obtém apenas o nome do arquivo

Se você deseja obter o tempo de acesso junto com o nome do arquivo:

stat -c '%X %x %n' * | sort -k1,1rn | cut -d' ' -f2-
    
por heemayl 04.10.2016 / 11:52