Preciso de ajuda para um script bash que conta arquivos e pastas em um diretório especificado em um sistema Linux (Debian), mas quero excluir uma pasta especificada.
Eu tenho um diretório principal chamado workdir
com diferentes arquivos e pastas de script. Dentro workdir
, eu tenho um diretório chamado mysshfs
. Eu uso fuse/sshfs para montar uma pasta externa na mysshfs
pasta.
Agora eu inicio alguns comandos para obter informações sobre a contagem de arquivo/diretório e o tamanho do arquivo/diretório, mas quero excluir o diretório mysshfs
.
Meus comandos bash que funcionam:
obter o tamanho total de
workdir
| nenhum fusível/sshfs em uso$ du -hs workdir
obter o tamanho total de
workdir
, excluindomysshfs
| fusível/sshfs em uso$ du -hs --exclude=mysshf workdir
contar arquivos em
workdir
| nenhum fusível/sshfs em uso$ find workdir -type f | wc -l
contar pastas em
workdir
| nenhum fusível/sshfs em uso$ find workdir -type d | wc -l
contar arquivos em
workdir
, excluindomysshfs
| nenhum fusível/sshfs em uso$ find workdir -type f -not -path "*mysshfs*" | wc -l
contar pastas em
workdir
, excluindomysshfs
| nenhum fusível/sshfs em uso$ find workdir -type d -not -path "*mysshfs*" | wc -l
Quando eu uso os comandos 5 e 6 e o diretório remoto está montado no mysshfs
diretório, os comandos travam.
Os comandos eventualmente funcionam e mostram a saída correta, mas parece que os comandos ainda estão procurando dentro do diretório excluído, mesmo que não devessem, então leva muito tempo para exibir o resultado.
Onde está meu erro ou esqueci algo nos meus comandos 5 e 6? Ou posso usar outros comandos para meus resultados?
Eu preciso contar arquivos e diretórios usando 2 comandos separados e excluir uma pasta especificada que está montada em fuse/sshfs para obter um resultado rápido.
Você pode usar
-prune
para evitar descer em subdiretórios. Tente estes comandos em vez disso: