Provavelmente isso é algo básico, mas não sou capaz de fazê-lo funcionar. Estou tentando usar o DU para obter um tamanho total de arquivos menos determinados diretórios. Preciso excluir um diretório específico chamado, uploads
mas nem todo diretório chamado uploads
. Por exemplo, minha estrutura de arquivos se parece um pouco com isso:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Eu posso executar o seguinte comando:
du -ch --exclude=uploads*
e me fornece o tamanho do arquivo menos todos os diretórios "uploads". No entanto, ao tentar excluir determinados diretórios (e todos os seus subdiretórios), falho. Eu tentei variações de:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
mas parece que não consigo descobrir. Como excluo um diretório específico?
username: store$ du -ch --exclude=./uploads
trabalhou (com e sem o curinga) para mim, de dentro do diretório da loja. Você está executando esse comando exatamente e de dentro da pasta da loja? E tem que ser o caminho relativo (que encontra vê / imprime), não absoluto.Respostas:
Você quase o encontrou :)
Não observe nenhum asterisco no final. O asterisco significa que todos os subdiretórios em "upload" devem ser omitidos - mas não os arquivos diretamente nesse diretório.
fonte
du -sb --exclude=./relative/path/to/uploads
) não funciona para mim. Isso acontece:du -sb --exclude relative/path/to/uploads
du
. O Mine (OSX) nem sequer tem--exclude
, mas precisa-I mask
"Ignorar arquivos e diretórios correspondentes à máscara especificada". No seu exemplo de trabalho, você também omite o=
, fazendo-me pensar ainda que é apenas a sua versão dedu
ser um pouco maisdu
feroz.Para excluir vários diretórios, basta passar o sinalizador --exclude novamente.
fonte
du -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
incrível pular os sistemas de arquivos virtuais como esse
fonte
Se você precisar estar no macOS, instale o GNU Coreutils com o seguinte comando.
A maioria dos comandos instalados pelo Coreutils é prefixada por
g
, pois eles têm um homônimo BSD pré-instalado no macOS. Então você pode fazer o seguinte.fonte