Necesito organizar un HDD externo para que no haya más de 500 carpetas en él. El panel "Propiedades" de Ubuntu muestra solo el recuento de archivos, no el recuento de carpetas.
¿Hay una línea de comando simple que me diga el número de subdirectorios?
Necesito contar recursivamente, y la unidad es un HDD externo montado en /media/MUSIC/. Es para un sistema estéreo de automóvil cuya documentación dice que solo lee las primeras 500 carpetas.
linux
command-line
Dean Rather
fuente
fuente

grep -csobre elwc -l. Tal vez solo soy yo.\nd(donde\nestá el carácter NL).lsno se supone que la salida se canalice . Además, este será mucho más lento, ya que tiene a todo el árbol de salida y ejecute grep a través de él¿Encontrar todas las carpetas en total, incluidos los subdirectorios?
... o encuentra todas las carpetas en el directorio raíz (sin incluir subdirectorios)?
fuente
*foo*para poner en cursiva: foo )find /path -not -iname '*.mp3' | wc -lpara filtrar MP3, o para usar MP3 y WAVfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -lLas nuevas líneas son caracteres válidos en los nombres de directorio. Sugiero dejar
findimprimir una línea vacía para cada directorio encontrado y luego dejar dewccontar esas líneas.fuente
Pruebe lo siguiente [ver abajo]:
Esto imprimirá una lista de una columna del directorio actual, con barras diagonales finales para los elementos que son subdirectorios, luego contará las líneas con las barras diagonales.
EDITAR: probablemente debería ir con la respuesta de quack quixote, ya que es un poco más explícito, pero he corregido la mía (después de tener en cuenta las sugerencias de quack).
fuente
-1ya que ls detectará la tubería y no formateará las columnas. también puede tomar listados recursivos con-R, pero probablemente desee buscar"/$"solo para que coincidan las barras diagonales finales (o el recuento estará desactivado). versión final:ls -Rp | grep "/$" | wc -l.(es decir/mount/point) en su recuento, la versión ls en mi comentario anterior no contará. esos recuentos difieren en 1, aunque podría usarlos/mount/point/*en el comando de búsqueda para corregir eso (suponiendo que no haya directorios de puntos ocultos).He escrito ffcnt para acelerar el recuento recursivo de archivos en circunstancias específicas: discos rotativos y sistemas de archivos que admiten la asignación de extensión.
Puede ser un orden de magnitud más rápido que eso
lsofindenfoques basadosfuente
Cuando hay una gran cantidad de directorios, las herramientas como
treepueden tardar una eternidad en terminar o incluso bloquearse, por lo que es posible que desee utilizar algo más eficiente.La forma más eficiente de contar los directorios en los que puedo pensar sería la siguiente, ya
findque solo imprimirá uno.para cada carpeta encontrada en lugar de la ruta completa y el nombre del archivo ywcsolo necesita iterar sobre el número de caracteres:Para excluirse
/mount/pointdel cálculo y solo contar los subdirectorios:fuente
He encontrado
du --inodesútil, pero no estoy seguro de qué versióndurequiere. En Ubuntu 17.10, funciona lo siguiente:Combinar con
| sort -nrpara ordenar descendente por número de inodos que contienen.fuente
Me gusta usar el árbol para extraer el recuento de directorios con
O usaré find para mostrar que la mayoría de las carpetas están ubicadas con
fuente
Para buscar el número de carpetas y el directorio en el directorio actual
Escribe el siguiente comando en tu terminal
fuente