
Tengo una estructura de carpetas como esta:
/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e
Quiero enumerar archivos + tamaño de archivo para todos los archivos en subcarpetas en las carpetas 'a'. Intenté usar buscar pero estoy atascado. ¿Cuál sería el comando correcto?
Respuesta1
Para imprimir el tamaño y la ruta completa, intente esto.
find /[123]/a/* -type f -printf '%s %p\n'
Verman find
para otras cadenas de formato que puedas usar con -printf
. En particular, es posible que desee %P
o %f
en lugar de %p
y quizás %b
en lugar de %s
.
[123]
coincide con un nombre que tiene un solo dígito en el rango 1-3; tal vez ampliarlo *
o algo un poco más restringido si su ejemplo no corresponde exactamente a la realidad que está tratando de describir.
GNU find
debería ser estándar en CentOS, pero si necesita un código portátil adecuado, tal vez lo utilice find ... -exec stat {} \;
(pero tenga en cuenta que stat
también tiene problemas de portabilidad; el comando debería existir en la mayoría de las plataformas, pero la forma exacta de lograr que imprima algo específico varía según las implementaciones). Otra opción es find ... -ls
pero entonces te enfrentas aanalizando ls
.
Si no necesita recorrer subdirectorios, no necesita find
.
stat -c '%s %n\n' /[123]/a/*/*