Estou aprendendo alguns comandos básicos do UNIX atualmente. Hoje foi ls
. Eu queria classificar meus resultados por tamanho.
Eu tentei
ls -lS /Applications/Utilities
os resultados não foram classificados.Eu tentei
ls -lS ~/Downloads
os resultados foram classificados.
Alguma ideia do porquê? Por que não consigo classificar os resultados de uma pasta específica?
/Applications/Utilities
cheira a macOS. IIRC esse diretório no macOS normalmente contém diretórios, não arquivos regulares.Diretórios são tipos especiais de arquivos que contêm uma lista de nomes de arquivos em algum formato opaco. O tamanho dos arquivos do diretório geralmente aumenta com o número de arquivos neles, mas nem sempre. Por exemplo, não conheço os sistemas de arquivos macOS, mas em muitos outros, o espaço ocupado por uma entrada de diretório geralmente não é recuperado quando é removido (quando o arquivo correspondente é desvinculado do diretório).
Os arquivos de diretório também costumam ser alocados em partes. Suspeito que todos esses diretórios tenham o mesmo tamanho, pois contêm poucas entradas, portanto, são apenas um pedaço (talvez algo como 4KiB), o que explicaria por que
ls
classificá-los por nome (como uma forma de resolver empates).Em suma, o tamanho dos diretórios não é realmente relevante.
Se você quiser classificar a lista de diretórios com base no uso de disco cumulativo de todos os arquivos neles (recursivamente), faça:
(supondo que esses nomes de diretório não contenham caracteres de nova linha).