![Listar arquivos em subdiretórios específicos](https://rvso.com/image/1558685/Listar%20arquivos%20em%20subdiret%C3%B3rios%20espec%C3%ADficos.png)
Eu tenho uma estrutura de pastas assim:
/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e
Quero listar os arquivos + tamanho do arquivo para todos os arquivos nas subpastas das pastas 'a'. Eu tentei usar find, mas estou preso. Qual seria o comando certo?
Responder1
Para imprimir o tamanho e o caminho completo, tente isto.
find /[123]/a/* -type f -printf '%s %p\n'
Verman find
para outras strings de formato que você pode usar com -printf
. Em particular, você pode querer %P
ou %f
em vez de %p
e talvez %b
em vez de %s
.
[123]
corresponde a um nome que tem um único dígito no intervalo de 1 a 3; talvez estenda-o *
ou algo um pouco mais restrito se o seu exemplo não corresponder exatamente à realidade que você está tentando descrever.
GNU find
deve ser padrão no CentOS, mas se você precisar de código adequadamente portável, talvez use find ... -exec stat {} \;
(mas observe que isso stat
também tem problemas de portabilidade; o comando deve existir na maioria das plataformas, mas como exatamente fazê-lo imprimir algo específico varia entre as implementações). Outra opção é find ... -ls
mas então você está enfrentandoanalisando ls
.
Se você não precisa percorrer subdiretórios, não precisa do find
.
stat -c '%s %n\n' /[123]/a/*/*