Registre novos arquivos em um diretório

2

Existe uma ferramenta que me informa sobre os últimos arquivos recém-criados?

A maneira ainda comum de usar um sistema de arquivos hierarquicamente dificulta a gravação de arquivos em lugares diferentes, então, às vezes, classifico as coisas em pastas de tópicos gerais e, às vezes, no local de coisas diretamente relacionadas, por exemplo. publicações relacionadas a uma determinada ferramenta no diretório dos binários.

Melhor seria uma ferramenta que eu possa perguntar:

  • Período de criação / salvamento

  • Tipo de arquivo / nome / extensão

  • Lista negra / branca de diretórios para excluir / incluir

por PythoNic 04.09.2014 / 16:30

2 respostas

3

As ferramentas de linha de comando que suportam essas ações são find :

Exemplos

find /path -iname '*.ext' # search for extension (don't forget the quotes)
find /path -mtime n       # search for last modified 'n*24h' ago
find /path -atime n       # search for last accessed 'n*24h' ago
find /path -newer ref     # newer than ref
find /path -size +100M    # larger than 100MB
find /path -perm 664      # example to search for files with a specific permission
find /path -type <t>      # search for file 'f', directory 'd', symbolic link 'l' ...

Para solicitar mais detalhes sobre o tipo de arquivo, sugiro executar algo nos moldes de

find /path -type f -exec file '{}' \; | grep 'Vorbis audio'

Não conheço uma ferramenta (especialmente uma ferramenta GUI) que seja tão capaz quanto find .

    
por 04.09.2014 / 17:22
0

Use inotify se você precisar saber imediatamente

Se você precisar saber imediatamente sobre os arquivos recém-criados, poderá esperar pelo evento de criação de um arquivo em um diretório ou em uma árvore de diretórios usando a API inotify no linux (consulte man 7 inotify ) :

Você combinaria isso com partes de outras soluções para descobrir as informações detalhadas sobre os arquivos.

Exemplo de criação de arquivos de observação

Abaixo, o comando inotifywait -e create -m /path é iniciado. Quando ele espera após a linha Watches established. , um novo arquivo foo é criado em /path em outro terminal:

term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.

term2$ touch /path/foo

term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.
./ CREATE foo
^C

(primeiras 3 linhas repetidas de cima)

Sem a opção -m ( --monitor ) inotifywait pára após o primeiro evento, o que pode ser útil em um loop de script.

    
por 24.06.2015 / 14:43