Como criar uma visão filtrada de um diretório?

3

Eu tenho uma pasta com muitos arquivos. Alguns deles são mais usados e exigidos do que outros.

Eu quero ter "pastas" que representem uma visualização desse diretório com um determinado filtro. Filtros como o nome do arquivo "tem _final" ou o tamanho do arquivo < 5 mb ou algo parecido.

Eu sei, existem comandos como find, grep e assim por diante. Eu quero o resultado deles como um diretório do sistema de arquivos com "hard links".

Existe alguma maneira de fazer isso?

    
por wuppi 02.09.2017 / 20:40

3 respostas

4

Uma breve pesquisa no Google produz várias soluções FUSE:

  • cmdfs , muito poderoso, além da filtragem, pode fazer transformação ou mesmo criar arquivos em tempo real,
  • ROFS-Filtered , crie um diretório somente leitura com arquivos que correspondam ao padrão definido e
  • Várias outras soluções que são reproduzidas com listas de diretórios listadas no libfuse Wiki, no link .
por 02.09.2017 / 21:45
0

Você diz que quer links físicos - mas também diz que você quer "pastas" que representam uma visão ". Se você está feliz com algo que parece o que você quer, considere as funções do shell:

ls_final() { ls "$@" | grep has_final; }

Você pergunta atualmente diz

file name "has _final"

Não sei se é um erro de digitação para

file name has "_final"

Se for, altere o grep de acordo.

A filtragem para o tamanho do arquivo é um pouco mais difícil especialmente se o limite de seleção não é uma potência de dez (ou um pequeno inteiro vezes uma potência de dez). Pode ser gerenciado com grep , se você sempre usar a opção -l (letra minúscula L) ou equivalente. Existem provavelmente outras abordagens, embora possa ser muito difícil para fazer isso de maneira elegante, segura e eficiente.

TL; DR Se você tiver o hábito de usar ls_final , ls_small , etc., será parecido com apenas os arquivos desejados estão presentes.

    
por 19.09.2017 / 01:29
-1
cd /path/to/filter_directory
find /source/dir -mindepth 1 -maxdepth 1 [...filter tests...] -exec ln -t . {} +
    
por 02.09.2017 / 20:47