Digamos que na minha pasta ~/list
eu tenha uma grande quantidade de pastas, cada uma com suas próprias subpastas e subpastas, etc, e existem muitos arquivos quase em cada nível. No entanto, alguns desses arquivos e pastas estão vazios, então como posso pesquisar recursivamente por todos eles para encontrar os arquivos e pastas vazios? E depois exibi-los em uma lista de locais de arquivos, para que eu saiba onde está cada um (também deve ficar claro qual é um arquivo e qual é uma pasta, porque nem todos os arquivos possuem extensões). Estou executando o Ubuntu GNOME 15.10 com o GNOME 3.18.
Observe que também seria muito útil se também dissesse se um arquivo parecia vazio, mas não estava (por exemplo, se havia espaços ou quebras de linha ou algo assim). E diferenciaria entre um arquivo vazio real e um que parece vazio na saída.
Respostas:
A partir de
man find
Portanto, para encontrar arquivos e diretórios vazios, basta
Para indicar o tipo, você pode usar o
%y
especificador de formato de saídapor exemplo
ou fazer uso de um programa externo como
ls
, que inclui uma--classify
opçãoie
Se sua definição de 'vazio' for expandida para incluir arquivos contendo apenas caracteres de espaço em branco, ela se tornará mais complicada - e mais intensiva em termos de computação, pois agora você precisa realmente abrir pelo menos todos os arquivos não vazios e examinar seu conteúdo. A maneira mais eficiente de pensar em cima da minha cabeça seria algo como
(vazio, OU um arquivo AND grep não detecta pelo menos um caractere não em branco). Provavelmente, existe uma maneira melhor.
fonte
Da
~/list
pasta:para listar diretórios vazios e
para listar arquivos vazios.
para listar pastas e arquivos vazios, incluindo espaços em branco e linhas vazias
fonte
[ `grep -c [[:alnum:]] "{}"` -eq 0 ]
deixará passar arquivos contendo apenas caracteres que não estão no[A-Za-z0-9]
conjunto.