recebendo erro ao executar du -hs. [!.] *

2

Eu quero ver os tamanhos de todos os diretórios, incluindo o diretório oculto. Um comando que me deparei foi este: du -hs .[!.]*

mas está me dando erro:

du: cannot access ‘.[!.]*’: No such file or directory

Eu não consigo entender o que estou fazendo de errado.

    
por Promod 06.04.2017 / 08:56

2 respostas

2

O erro que você está recebendo significa que não há nenhum arquivo ou diretório oculto no diretório atual. .[!.]* se expande para corresponder a qualquer arquivo ou diretório cujo nome comece com “.” seguido por qualquer coisa, menos “.”; se não corresponder a nada, fica como está por padrão. Portanto, no seu caso, du é executado com .[!.]* como argumento, em vez de nomes de arquivos ou diretórios reais, e produz a mensagem de erro que você está vendo.

Você pode ativar nullglob para alterar o comportamento do shell aqui:

shopt -s nullglob

Em seguida, o shell removerá padrões que não correspondem a nada e du relatará o uso do diretório atual se nada corresponder (esse é o comportamento padrão na ausência de argumentos).

Para conseguir o que você procura, no Bash, você deve fazer isso:

du -sh .[!.]*/ */

Isso expandirá para todos os diretórios no diretório atual, incluindo os ocultos. Se nullglob não estiver ativado, ainda produzirá mensagens de erro, mas você verá os tamanhos de qualquer diretório correspondente.

    
por 06.04.2017 / 09:06
1

Parece que você quer este comando:

du -hsc --exclude "./.*" */ | sort -h
    
por 06.04.2017 / 09:06