El comando TREE

Imagen de banyut
0 puntos

extraido de banyut

Hoy os voy a mostrar un comando que posiblemente ya conozcáis, es uno de mis preferidos y con el me he pegado alguna que otra vacilada (no seáis mal pensados, es para motivarlos y que se interesen por este mundo, pensar que algunos de mis amigos creen que la informática es eso que ha creado windows para poder navegar por internet, INCREIBLE PERO CIERTO).

Bueno el comando en cuestión es tree y nos da una visión más o menos estructurada y jerárquica de los archivos y directorios de nuestro disco, lo mejor es que lo veamos, hoy no me quiero enrollar mucho.

La forma más básica es teclear el comando tree sin ninguna opción.

banyut@hades:~/Escritorio/dendrograma.bin$ tree
.
|-- dades.txt
|-- dades.txt~
|-- dendrograma.bat
|-- dendrograma.jar
|-- dendrograma.sh
|-- img
| |-- H_N.jpg
| |-- H_R.jpg
| |-- V_N.jpg
| |-- V_R.jpg
| |-- ico1.png
| `-- ico2.gif
|-- ini
| |-- English.l
| |-- English.l~
| |-- Idiomes.ods
| |-- catala.l
| |-- dendo.ini
| `-- spanish.l
`-- logs
|-- dendograma_log.xml
|-- dendograma_log.xml.1
`-- logger.dtd

3 directories, 20 files

Al introducir tree sin argumentos este nos devuelve toda la jerarquía de archivos y directorios a partir del directorio actual. Esto lo podemos cambiar, pudiendo indicar la ruta a partir de la cual queremos crear el árbol de directorios.

banyut@hades:~/Escritorio/dendrograma.bin$ tree /etc/thunderbird/
/etc/thunderbird/
|-- pref
| `-- thunderbird.js
`-- profile
|-- US
| |-- localstore.rdf
| `-- mimeTypes.rdf
|-- localstore.rdf
|-- mimeTypes.rdf
`-- prefs.js

3 directories, 6 files

Si queremos crear un árbol de nuestro sistema tendremos que teclear

tree /

Nos puede interesar listar solo los directorios.

banyut@hades:~/Escritorio/dendrograma.bin$ tree . -d
.
|-- img
|-- ini
`-- logs

3 directories

El punto indica que quiero listar el directorio actual, la instrucción anterior hubiera funcionado igual si lo hubiésemos omitido (tree -d).

Tree por defecto no muestra los archivos ocultos, si queremos que los muestre tendremos que añadir la opción -a.

banyut@hades:~/Escritorio/dendrograma.bin$ tree -a
.
|-- .oculto.txt
|-- dades.txt
|-- dades.txt~
|-- dendrograma.bat
|-- dendrograma.jar
|-- dendrograma.sh
|-- img
| |-- H_N.jpg

Si os fijáis, el primer archivo (.oculto.txt) no había salido en el listado anterior, la opció -a hace que nos lo muestre.

Otra opción que nos puede interesar mucho es que junto con el nombre de cada archivo se incluya la ruta completa. También dejaremos la opción de mostrar los ficheros ocultos para que veais como se pueden combinar dos o más opciones.

banyut@hades:~/Escritorio/dendrograma.bin$ tree -af
.
|-- ./.oculto.txt
|-- ./dades.txt
|-- ./dades.txt~
|-- ./dendrograma.bat
|-- ./dendrograma.jar
|-- ./dendrograma.sh
|-- ./img
| |-- ./img/H_N.jpg
| |-- ./img/H_R.jpg
| |-- ./img/V_N.jpg
| |-- ./img/V_R.jpg
| |-- ./img/ico1.png
| `-- ./img/ico2.gif
|-- ./ini
| |-- ./ini/English.l
| |-- ./ini/English.l~
| |-- ./ini/Idiomes.ods
| |-- ./ini/catala.l
| |-- ./ini/dendo.ini
| `-- ./ini/spanish.l
`-- ./logs
|-- ./logs/dendograma_log.xml
|-- ./logs/dendograma_log.xml.1
`-- ./logs/logger.dtd

3 directories, 21 files

Ahora quiero que me muestre el propietario o el UID del archivo (-u), el grupo o GID (-g) y el tamaño de cada archivo (-h).

banyut@hades:~/Escritorio/dendrograma.bin$ tree -ugh
.
|-- [banyut banyut 216] dades.txt
|-- [banyut banyut 0] dades.txt~
|-- [banyut banyut 26] dendrograma.bat
|-- [banyut banyut 197K] dendrograma.jar
|-- [banyut banyut 57] dendrograma.sh
|-- [banyut banyut 4.0K] img
| |-- [banyut banyut 19K] H_N.jpg
| |-- [banyut banyut 19K] H_R.jpg
| |-- [banyut banyut 19K] V_N.jpg
| |-- [banyut banyut 19K] V_R.jpg
| |-- [banyut banyut 1.6K] ico1.png
| `-- [banyut banyut 1.3K] ico2.gif
|-- [banyut banyut 4.0K] ini
| |-- [banyut banyut 1.5K] English.l
| |-- [banyut banyut 1.5K] English.l~
| |-- [banyut banyut 15K] Idiomes.ods
| |-- [banyut banyut 877] catala.l
| |-- [banyut banyut 2.7K] dendo.ini
| `-- [banyut banyut 1.8K] spanish.l
`-- [banyut banyut 4.0K] logs
|-- [banyut banyut 20K] dendograma_log.xml
|-- [banyut banyut 384] dendograma_log.xml.1
`-- [banyut banyut 2.3K] logger.dtd

3 directories, 20 files

Podemos quitar la tabulación con la opción (-i)

banyut@hades:~/Escritorio/dendrograma.bin$ tree -ughi
.
[banyut banyut 216] dades.txt
[banyut banyut 0] dades.txt~
[banyut banyut 26] dendrograma.bat
[banyut banyut 197K] dendrograma.jar
[banyut banyut 57] dendrograma.sh
[banyut banyut 4.0K] img
[banyut banyut 19K] H_N.jpg
[banyut banyut 19K] H_R.jpg
[banyut banyut 19K] V_N.jpg
[banyut banyut 19K] V_R.jpg

Para no hacerme muy pesado, aquí tenéis otras posibles opciones.

-l Sigue los enlaces simbolicos.
-P patron lista solo los que coincidan con el patron.
-I patron lista los que no coincidan con el patron.
-p muestra el tipo de archivo y sus permisos.
-s tamaño en bytes.
-D muestra la fecha de la última modificación.
-r ordena la salida alfabeticamente de forma descendente.
-t ordena por ultima modificación.
--dirsfirst coloca los directorios antes que los ficheros.
-n salida sin colores.
-C activa el coloreado en la salida.
-L nivel Máximo nivell que mostraremos al crear el árbol.
-o file Envía la salida al fichero indicado

Bueno he dejado un par para comentar ya que creo que vale la pena. Tenemos la opción -A que nos dibuja las lineas (tabulaciones) del árbol de una forma más agradable.

monti@hades:~/Escritorio/dendrograma.bin$ tree -A
.
??? dades.txt
??? dades.txt~
??? dendrograma.bat
??? dendrograma.jar
??? dendrograma.sh
??? img
? ??? H_N.jpg
? ??? H_R.jpg
? ??? V_N.jpg
? ??? V_R.jpg
? ??? ico1.png
? ??? ico2.gif
??? ini
? ??? English.l
? ??? English.l~
? ??? Idiomes.ods
? ??? catala.l
? ??? dendo.ini
? ??? spanish.l
??? logs
??? dendograma_log.xml
??? dendograma_log.xml.1
??? logger.dtd

3 directories, 20 files

y ahora tenemos una que en un momento determinado nos puede ser de utilidad, la opción -H nos parsea la salida convirtiéndolo en código html, probarlo vale la pena ver la salida de este comando.

tree -H . -o mi_dir.html
firefox mi_dir.html

Con la opción (-T title), podemos poner un titulo a la pagina web, tambien tenemos la opción (--nolinks) que eliminará los links de la pagina web y por último podemos definir la codificación de caracteres que usará la pagina web. (--charset cod).

Si usamos las opciones P o I, tendremos que tener a nuestra disposición los siguientes operadores.

'*' sustituye ninguno o todos
'?' sustituye un unico carácter
'[...]' Cualquier carácter que se encuentre entre los corchetes ( los rangos se crearan con '-').
'[^...]' Cualquier carácter que no se encuentre entre los corchetes.
'|' es como un OR, separa diferentes patrones.

un ejemplo.

banyut@hades:~/Escritorio/dendrograma.bin$ tree -P *.jpg
.
|-- img
| |-- H_N.jpg
| |-- H_R.jpg
| |-- V_N.jpg
| `-- V_R.jpg
|-- ini
`-- logs

3 directories, 4 files

- - -
La inteligencia me persigue pero, ... yo soy más rápido.

Imagen de ggbla
+1
0
-1

Puse tree en mi terminal y me dijo que para usar el comando tree has de instalar el programa antes.
Por tanto, sería:
sudo aptitude install tree
Esto se debería poner antes de usar el comando en caso de que no esté instalado.

+1
0
-1
Imagen de banyut
+1
0
-1

No recuerdo haberlo instalado, de todas formas es más que probable que tengas razon, aun así no creo que haya más problema, el mismo sistema operativo te dice la instrucción para instalarlo.

La Inteligencia me persigue, pero ..... YO SOY MÁS RÁPIDO!!!!!

Usuario Linux #453776              Ubuntu User # 17343

 

+1
0
-1

La Inteligencia me persigue, pero ..... YO SOY MÁS RÁPIDO!!!!!

Usuario Linux #453776              Ubuntu User # 17343