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 -c
sobre elwc -l
. Tal vez solo soy yo.\nd
(donde\n
está el carácter NL).ls
no 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 -l
para filtrar MP3, o para usar MP3 y WAVfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
Las nuevas líneas son caracteres válidos en los nombres de directorio. Sugiero dejar
find
imprimir una línea vacía para cada directorio encontrado y luego dejar dewc
contar 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
-1
ya 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
ls
ofind
enfoques basadosfuente
Cuando hay una gran cantidad de directorios, las herramientas como
tree
pueden 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
find
que solo imprimirá uno.
para cada carpeta encontrada en lugar de la ruta completa y el nombre del archivo ywc
solo necesita iterar sobre el número de caracteres:Para excluirse
/mount/point
del cálculo y solo contar los subdirectorios:fuente
He encontrado
du --inodes
útil, pero no estoy seguro de qué versióndu
requiere. En Ubuntu 17.10, funciona lo siguiente:Combinar con
| sort -nr
para 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