Propiedades: X archivos, X subcarpetas ¿cosas distintas? [Solucionado]

Tengo una carpeta donde voy guardando mis libros epub, por autores (una carpeta por autor) y estos, agrupados en carpetas con las letras iniciales (A, B, C, D...). Quiero saber cuantos libros tengo...
Si miro en las propiedades de esa carpeta, me dice que hay tantos archivos, tantas subcarpetas...
Para saber cuantos libros tengo (cada libro, es un fichero '.epub') ¿debo descontar el número de subcarpetas del número de ficheros? o, directamente, el número de ficheros es el número de ficheros 'epub' y las subcarpetas no cuentan como ficheros?

Salu2

No estoy usando Kubuntu sino Debian, pero tampoco estoy usando KDE en Debian sino LXDE, Gnome y Xfce. Sin embargo hice un ejercicio para ver lo que comentas:

$ tree libros/
libros/
|-- fulano
|   `-- a
|       `-- a.epub
|-- perengano
|   `-- c
|       `-- c.epub
`-- zutano
    `-- b
        `-- b.epub

y el administrador de archivos de Gnome (Nautilus) indica que hay 9 elementos en total, por lo que no sólo está contando los 3 únicos archivos sino los 6 directorios. En vista de que cada administrador de archivos puede mostrar cosas distintas (por ejemplo Nautilus no me dice cuántos archivos hay en total adentro de "libros") creo que el uso de comandos te podría ser más útil:

$ tree libros/ | grep -i ".epub" | wc -l
3

El comando tree indica que quiero el directorio "libros" pero en forma de árbol, después con grep se indica que únicamente queremos los archivos que tienen la extensión .epub. El parámetro -i es para que ignore si la extensión tiene mayúsculas o minúsculas o la combinación de ambas, porque podrías tener archivos .epub, .Epub, .ePub, etc. Por último el comando wc (word count) es para que cuente el total de líneas (-l) que corresponden al total de libros encontrados.

Espero esto te sea útil. Por ejemplo yo así sé cuántos libros PDF tengo:

$ tree /media/windows_d/data/documents/books/ | grep -i ".pdf" | wc -l
53

Saludos,
Sidd.

AGREGO: en realidad el comando tree no es el que yo usaría (es que seguí con él porque es el que usé al principio para mostrar la estructura que hice). Más bien usaría el comando find:

$ find ./libros/ | grep -i ".epub" | wc -l
3

Estoy confundido... mira:

$ find ./LIBROS/ | grep -i ".epub" | wc -l
3366

Yo uso el Dolphin, que me dice en "Propiedades" que hay 3391 archivos, 1237 subcarpetas...
3366 se parece a 3391... pero no es lo mismo: hay 26 de diferencia...¡QUE SON LAS 26 PRIMERAS CARPETAS CON LAS INICIALES A, B, C, D... ETC!
De hecho, si añado tres archivos (un .zip, un .html y un .doc) a 'LIBROS', Dolphin dice en "Propiedades" que hay 3394 archivos, 1237 subcarpetas... es decir, Dolphin cuenta como ficheros, indistintamente, sus primeras carpetas, pero no las 1237 subcarpetas (las individuales de cada autor)

Ahora bien...
Si me voy a la subcarpeta /LIBROS/Z/ donde solo hay 2 carpetas (2 autores con inicial Z), cada uno con un libro, 'Propiedades' de la carpeta Z, me dice que hay dos archivos y 2 subcarpetas, lo que es totalmente correcto... ¡pero ahora no está contando como archivos las 2 primeras subcarpetas (autores), lo que concuerda con:

find ./LIBROS/Z/ | grep -i ".epub" | wc -l
2

¡PERO DA AL TRASTE CON MI PRIMERA CONCLUSIÓN (que la diferencia entre lo que dice Dolphin y lo que da find, estaba en las primeras subcarpetas)
¿Podría ser que en algunas de las subcarpetas de 'LIBROS' haya ficheros que no sean '.epub'?

Probablemente hay otros archivos que no son epub, como señalas. Intenta hacer lo contrario: que el comando muestre todos archivos que no son epub:

Cuáles archivos no son .epub

$ find ./LIBROS/ | grep -v ".epub"

Cuántos son:

$ find ./LIBROS/ | grep -v ".epub" | wc -l

Saludos,
Sidd.

find ./LIBROS/ | grep -v ".epub"

No me da el número de archivos que no son .epub, no los cuantifica, sino que me da un larguisimo listado de carpetas y subcarpetas, por ejemplo:

./LIBROS/X
./LIBROS/X/Xingjian Gao
./LIBROS/X/Xavier Velasco

donde... vaya Ud. a saber si, además, hay algún otro tipo de archivo.

Tengo otra pregunta... pero, mejor, abro otro post.

Gracias por todo.

Caray, tienes razón porque precisamente al decirle que muestre todo lo que no sea .epub ha mostrado también los directorios. El parámetro -type f servirá para que sólo busque ficheros, ignorando los directorios:

Cuántos archivos son .epub:

find ./LIBROS/ -type f | grep -i ".epub" | wc -l

Cuántos NO son .epub:

find ./LIBROS/ -type f | grep -iv ".epub" | wc -l

Si quieres saber cuáles son sólo basta quitar | wc -l al final de cada comando. Puedes también usar > nombre_archivo.txt en vez de | wc -l para que lo encontrado se guarde en un archivo de texto.

Saludos,
Sidd.

Pues... sigue sin cuadrar, pero parece que la diferencia no era por las primeras 26 carpetas (las de las iniciales) mira:

Según 'Propiedades' de la carpeta 'LIBROS', tiene ahora mismo 3453 archivos, 1241 subcarpetas, pero al hacer lo que me indicas, da lo siguiente

~$ find ./LIBROS/ -type f | grep -i ".epub" | wc -l
3428
~$ find ./LIBROS/ -type f | grep -iv ".epub" | wc -l
25

Ya sólo te falta quitar | wc -l a los comandos para ver qué archivos son, o usar | less para ir viendo página por página el listado, o redirigir la lista de archivos a un archivo de texto para que la revises con calma. La verdad yo le haría más caso a lo que indica la línea de comandos, que a lo que indica el administrador de archivos. Considera la posibilidad de que hayan archivos ocultos (aquéllos cuyo nombre empieza con un punto). Dentro de cada subdirectorio siempre hay dos archivos que son . (un punto) y .. (dos puntos). El primero se usa cuando se ejecuta un comando que haga referencia al directorio en sí, y el segundo se usa para poder subir un nivel. Probablemente el administrador de archivos está contando esos archivos.

Espero haberte sido de ayuda.

Saludos,
Sidd.

Mira, usé una máquina virtual que tengo de Debian con KDE, para comparar lo que muestra Dolphin vs lo que muestra la terminal:

En la estructura de ejemplo que creé Dolphin indica que tengo 3 archivos y 6 subdirectorios:


( http://i.imgur.com/zsiJvDn.png )

y la terminal indica que tengo 6 subdirectorios y 3 archivos (.txt), posteriormente listo los archivos txt (3) y listo los archivos que no son .txt (0):


( http://i.imgur.com/2cs4NZb.png )

En mi caso sí concuerdan lo reportado por Dolphin y la terminal. Por supuesto esto lo hice en una máquina virtual, no estoy usando Kubuntu sino Debian, por lo tanto no es EXACTAMENTE lo mismo que tienes tú, ya que existe la posibilidad de que algún bug exista por ahí en el Dolphin de Kubuntu (no estoy diciendo que lo sea).

Ojalá alguien de aquí del foro que sí use Kubuntu pueda hacer una prueba similar para sacarnos de la duda, y descartar lo del bug. Continúo pensando que muy probablemente tienes otros archivos que no son epub, o que quizás existan archivos temporales, o archivos ocultos.

Saludos,
Sidd.

Yo también sospeché lo de posibles archivos ocultos pero, los borré, y seguía sin cuadrar.
Intentaré comprobar con pocas carpetas (no puedo andar revisando 3.000 archivos)

Gracias -como siempre- por tus consejos, Siddharta

Hola de nuevo Albertodelaxe, al hilo de lo que ya te comenta Siddharta creo que con este comando te da los libros exactos:

find ./eBooks -name *.epub | wc -l
3084

Es exactamente la cantidad de libros que indica el maravilloso Calibre que tengo.

Espero que esto te ayude.

PD: No adjunto los datos que me da Dolphin ya que en la biblioteca tengo también portadas y archivos de metadatos.

En la mini biblioteca de prueba que creé para tu script los datos de dolphin son:

y los de konsole son:

find ./pruebas_bash/ -name *.epub | wc -l
7

Como ves hay una diferencia de 3 archivos, 1 es el archivo del script y los otros 2 son el directorio . y el .. y he comprobado los epubs y efectivamente tengo 7.

Salu2