Avisar de contenido inadecuado

Comando tree

{
}

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 patrone
s.

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.

{
}
{
}

Deja tu comentario Comando tree

Identifícate en OboLog, o crea tu blog gratis si aún no estás registrado.

Avatar Tu nombre