Comando Bash Tree

El comando bash tree es comparable al conocido comando ls de Linux, que se usa para listar los archivos y directorios. La principal diferencia entre los comandos es que los archivos y las carpetas se presentan en una estructura similar a un árbol mediante el comando de árbol. El comando de árbol itera a través de una jerarquía de archivos e imprime los archivos y subdirectorios en una lista formateada con sangría de profundidad. Con el comando de árbol de bash, podemos determinar rápidamente las posiciones de los archivos y carpetas, examinar sus permisos de acceso y también buscar los archivos o directorios ocultos.

Ejemplo #1: Instalación de Tree en Bash.

El comando de árbol no es el comando integrado de bash. Tenemos que instalar el comando de árbol en bash antes de llamarlo al shell de bash. Usamos los privilegios sudo con el comando apt para instalar el módulo de árbol dentro de bash. Una vez que se ejecuta el comando de instalación, solicita la contraseña para la autenticación y luego instala el árbol en el bash. Aquí, ya hemos instalado el comando de árbol con la última versión.

$ Sudo apt install tree

[ sudo ] contraseña para linux:
Lectura de listas de paquetes… Listo Construcción del árbol
de dependencias
Lectura de información de estado… Listo
Se instalarán los siguientes paquetes NUEVOS: árbol 0 actualizado, 1 recién instalado, 0 para eliminar y 0 no actualizado
Necesita obtener 43,0 kB de archivos.
Después de esta operación, se utilizarán 115 kB de espacio adicional en disco.
Obtener : 1 http : //pk.archive.ubuntu.com/

ubuntu focal / universe amd64 tree amd64 1.8.0- 1 [ 43,0 kB ]
Obtuvo 43,0 kB en 1 s ( 33,4 kB / s )
Seleccionando un árbol de paquetes no seleccionado anteriormente.
( Leyendo base de datos… 188740 archivos y directorios actualmente instalados. )
Preparando para descomprimir … /tree_1.8.0- 1 _amd64.deb … Descomprimiendo árbol (
1.8.0-1 ) …
Configurando árbol ( 1.8.0- 1 ) … Activadores de
procesamiento para man-db ( 2.9.1- 1 ) …

Ahora, el comando de árbol se puede usar dentro de bash, ya que lo hemos instalado en nuestro sistema. El siguiente comando se usa para verificar la versión del comando del árbol. El comando devolvió la versión más reciente del árbol instalado en nuestro sistema.

$ tree –version

tree v1.8.0 ( c ) 1996 – 2018 por Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

Para obtener ayuda con respecto al comando de árbol de bash, podemos ejecutar el siguiente comando de árbol con la opción «-ayuda». Enumera toda la información necesaria relacionada con el comando de árbol en el shell bash como se muestra en la imagen.

$ árbol – uso de ayuda

: árbol [ -acdfghilnpqrstuvxACDFJQNSUX ] [ -H baseHREF ] [ -T título ]
[ -L nivel [ -R ] ] [ -P patrón ] [ -I patrón ] [ -o nombre de archivo ] [ –versión ]
[ –help ] [ –inodes ] [ –device ] [ –noreport ] [ –nolinks ] [ –dirsfirst]
[ –charset conjunto de caracteres ] [ –filelimit [ = ] #] [–si] [–timefmt[=]<f>]
[ –sort [ = ] < nombre > ] [ –matchdirs ] [ – -ignore-case ] [ –fromfile ] [ — ]
[ < lista de directorios > ]
——- Opciones de listado ——-
-a            Se listan todos los archivos.
-d            Listar solo directorios.
-l            Siga enlaces simbólicos como directorios.
-f            Imprime el prefijo de la ruta completa para cada archivo.
-x            Permanecer solo en el sistema de archivos actual.
-L nivel Desciende solo directorios de nivel profundo.
-R            Vuelva a ejecutar el árbol cuando se alcance el nivel máximo de directorio .
-P patrón Muestra solo los archivos que coinciden con el patrón dado.
-Patrón I No muestra archivos que coincidan con el patrón dado.
–ignore-case Ignora mayúsculas y minúsculas cuando se comparan patrones.
–matchdirs   Incluir nombres de directorios en coincidencia de patrón -P .
–noreport    Desactiva el recuento de archivos / directorios al final de la lista del árbol .
–charset X Use charset X para terminal / HTML y salida de línea de sangría.
–filelimit # No descender directorios con más de # archivos en ellos.
–timefmt < f > Imprime y formatea la hora según el formato < f > .
-o nombre de archivo Salida a archivo en lugar de salida estándar.
——- Opciones de archivo ——-
-q            Imprimir caracteres no imprimibles como ‘?’ .
-N            Imprime caracteres no imprimibles tal cual .
-Q            Cita nombres de archivo con comillas dobles.
-p            Imprime las protecciones para cada archivo.
-u            Muestra el propietario del archivo o el número de UID.
-g            Muestra el propietario del grupo de archivos o el número GID.
-s            Imprime el tamaño en bytes de cada archivo.
-h            Imprime el tamaño de una manera más legible por humanos.
–si          Como -h, pero se usa enUnidades SI ( potencias de 1000 ) .
-D            Imprime la fecha de la última modificación o ( -c ) cambio de estado.
-F            Agrega ‘/’ , ‘=’ , ‘*’ , ‘@’ , ‘|’ o ‘>’ según ls -F .
–inodes      Imprime el número de inodo de cada archivo.
–device      Imprime el número de identificación del dispositivo al que pertenece cada archivo .
——- Opciones de clasificación——-
-v            Ordena los archivos alfanuméricamente por versión.
-t            Ordenar archivos por hora de última modificación.
-c            Ordenar archivos por última hora de cambio de estado.
-U            Deja los archivos sin clasificar.
-r            Invierte el orden de la ordenación.
–dirsfirst   Lista los directorios antes que los archivos ( -U los desactiva ) .
–sort X Seleccionar orden: nombre, versión, tamaño , mtime, ctime.
——- Opciones de gráficos ——-
-i            No imprimir líneas de sangría.
-A Imprimir líneas ANSI líneas de sangría gráficas.
-S Imprimir con líneas de sangrado de gráficos CP437 (consola).
-n Desactiva siempre la coloración (-C anula).
-C Activa la coloración siempre.
——- Opciones XML/HTML/JSON ——-
-X Imprime una representación XML del árbol.
-J Imprime una representación JSON del árbol.
-H baseHREF Imprime formato HTML con baseHREF como directorio superior.
-T cadena Reemplace el título HTML predeterminado y el encabezado H1 con una cadena.
–nolinks Desactiva los hipervínculos en la salida HTML.
——- Opciones de entrada ——-
–fromfile Lee rutas de archivos (.=stdin)
——- Opciones misceláneas ——-
–version Imprimir versión y salir.
–help Imprime el uso y este mensaje de ayuda y sale.
— Terminador de procesamiento de opciones.

Además, también podemos obtener la información del comando de árbol en detalle ejecutando el comando de árbol con la palabra clave «man».

$ árbol hombre

Ejemplo # 2: Uso del comando Tree en Bash.

El proceso de instalación del comando de árbol se realiza en la sección anterior. Ahora, para usar el comando de árbol en bash, solo tenemos que proporcionar la palabra clave «árbol» en el shell de bash. El comando «árbol» muestra el contenido del directorio especificado en un formato de árbol. Aquí, hemos dado un comando de árbol sin ningún argumento. Cuando el comando de árbol se ejecuta sin ningún argumento, muestra la estructura de árbol de todos los archivos y directorios de la ruta actual. La imagen muestra los archivos de nuestra ruta de inicio y los directorios con sus archivos en una estructura de árbol. Al final, mostró el total de directorios y archivos dentro de nuestro directorio de inicio.

$ árbol

├── linux1.pdf
├── linux2.pdf
└── linux3.pdf

0 directorios, 3 archivos

La salida se puede hacer más legible usando el comando de árbol con la palabra clave «menos». Es útil cuando desea enumerar todos los archivos y carpetas en un directorio. Hemos dado un comando de árbol a continuación donde usamos el símbolo de barra inclinada «/» con la palabra clave de árbol para ver los archivos y carpetas dentro del directorio actual. Luego, usamos la canalización «|» símbolo donde se especifica la palabra clave “menos”. Podemos ver dentro de la imagen que solo unas pocas carpetas y archivos se enumeran en forma de estructura similar a un árbol. Los dos puntos “:” se encuentran al final y, al presionarlos, mostrarán más carpetas y archivos del directorio actual.

$ árbol / | less

/
├── bin – > usr / bin
├── boot
│ ├── config-5.15.0- 46 -generic
│ ├── config-5.15.0- 56 -generic
│ ├── efi [ error al abrir dir ]
│ ├── grub
│ │ ├── Fonts
│ │ │ └── unicode.pf2
│ │ ├── gfxblacklist.txt
│ │ ├── grub.cfg
│ │ ├ ├─ grubenv
│ │ ├─ i386– pc
│ │ │ ├── resolución 915.mod
│ │ │ ├── acpi.mod
│ │ │ ├── adler32.mod
│ │ │ ├── affs.mod
│ │ │ ├── afs.mod
│ │ │ ├── ahci.mod
│ │ │ ├── all_video.mod
│ │ ├ ├── aout.mod │ │ │ ├ ├ ├
│ │ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├ ├
├ ─ ata.mod
:

El comando bash tree también se puede usar para mostrar el árbol de procesos. Considere el siguiente comando donde el «proc» representa el proceso que se ejecuta en el directorio actual. Cuando presionamos enter en el comando de árbol, genera el proceso de árbol de nuestro directorio en el shell bash.

$ Tree / Proc │ ├──

Usuario

│ │ ├─se max_cgroup_namespaces

│ │ ├── max_fanotify_groups

│ │ ├ ├uto

max_fanotify_marks

│ │ ├ ├ ├ ├

│ │ │

│ │. max_mnt_namespaces



├──
max_net_namespaces



├iqute
_
_ memoria_compacta
│ ├── compact_unevictable_allowed

│ ├── Dirty_background_bytes

│ ├── Dirty_background_ratio

│ ├── Dirty_Bytes

│ ├─ úler_expire_centisecs

├──
Sirty_ratio

├ ├
├ ├.
│ ├── LaPTOp_Mode
│ ├── Legacy_VA_Layout
│ ├── LowMem_Reserve_ratio

├── Max_Map_Count
│ ├── Memory_Failure_Aarly_Kill
│ ├ ├ ─ Memory_Recovery
│ ├ ├ ├ ├ ├ ├ ├ ├ ├
├ ├.

│ ├── mmap_min_addr

│ ├── mmap_rnd_bits

│ ├── mmap_rnd_compat_bits

│ ├── nr_hugepages

│ ├── nr_hugepages_mempolicy

│ ├── nr_overcommit_hugepages

│ ├── numa_stat

│ ├── numa_zonelist_order

│ ├── oom_dump_tasks

│ ├── oom_kill_allocating_task

│ ├── overcommit_kbytes


├── overcommit_memory
│ ├── overcommit_ratio

│ ├──

clúster de página

│ ├─eg_lock_unfairness │ ├ ├ ├ │ ├ ├ ├
├ ├ ├ ├ ├ ├ ├
├ ├
├ ─ intercambio

│ ├── sin rivileged_userfaultfd │
├──

user_reserve_kbytes

│ ├── vfs_cache_pressure

│ ├
├─ watermark_boost_factor │ ├

├─ watermark_scale_factor


──

Zone_reclame_mod
│ └── shm
├── thread-self – > 5259 / task / 5259
├── timer_list
├── tty
│ ├── driver [ error al abrir dir ]
│ ├── drivers
│ ├─ ─ ─
ldisc ldiscs
├── tiempo de actividad
├── versión

├── version_signature

├── vmallocinfo

├── vmstat

└── zoneinfo

10618 directorios, 169916 archivos

Ejemplo n.º 3: uso del comando Tree con diferentes opciones en Bash.

opción de comando de árbol “-a”:

El comando de árbol admite varias opciones en bash que hemos utilizado en esta sección para demostrar el rendimiento de cada opción de comando de árbol en bash. En primer lugar, hemos implementado el comando de árbol con la opción «-a». La opción «-a» obtuvo todos los archivos del directorio, incluidos los archivos ocultos que se pueden ver en la imagen del shell bash.

tree -a

-shutdown.jsonlz4

│ │ ├── session-state.json

│ │ └── state.json

│ ├── directoryTree.json

│ ├── encrypted-openpgp-passphrase.txt

│ ├── extension-preferences .json

│ ├── extensions.json

│ ├── favicons.sqlite

│ ├── formhistory.sqlite

│ ├── global-messages-db.sqlite

│ ├── history.sqlite

│ ├│ d─ key

│ ├── ── bloqueo – > 127.0.1.1:+ 2021

│ ├── mailViews.dat

│ ├── minidumps

│ ├── openpgp.sqlite

│ ├── .parentlock

│ ├── permisos.sqlite

│ ├──
PKCS11.txt

├──
Places
. json.mozlz4
│ ├── Security_State
│ ├── Sessioncheckpoints.json
│ ├── Configuración
│ │ └── Data.safe.Bin
│ ├── SitEessecurityServiceState.txt │ ├ ├─
│ │ ├ ─ ├
│ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ls-archive.sqlite
│ │ ├── permanente
│ │ │ └── cromo
│ │ │ ├── idb
│ │ │ │ ├── 3870112724

│ │


└── 3870112724rsegmnoittet


es
. ── .vboxclient-clipboard.pid
├── .vboxclient-display-svga-x11.pid
├── .vboxclient-draganddrop.pid
├── .vboxclient-seamless.pid
└── .wget-hsts 1262 directorios, 10126 archivos

Aquí, hemos usado nuevamente el comando bash tree con la opción «-a» para mostrar la jerarquía de árbol del directorio especificado «snap» en el shell bash. El directorio de instantáneas mostraba todos los archivos en formato de árbol en la captura de pantalla a continuación.

árbol –a. / snap

–a [ error al abrir dir ]

. / snap [ error al abrir dir ]

0 directorios, 0 archivos

Opción de comando de árbol “-f” : el uso de la bandera -f con el comando de árbol es para enumerar los datos del directorio junto con el prefijo de ruta completo para cada subdirectorio y archivo. Aquí, hemos utilizado el comando de árbol con el indicador «-f» en el privilegio de sudo que solicita el permiso de acceso raíz del usuario registrado. La ruta completa de los archivos y los subdirectorios se puede visualizar en la imagen de bash shell dada.

$ sudo tree -f

[ sudo ] contraseña para linux:

.

├── . / Comando Bash Tree.docx

├── . / linux1.pdf

├── . / linux2.pdf

└── . / linux3.pdf

0 directorios, 4 archivos

opción de comando de árbol “-s” : A continuación, el comando de árbol se usa con la opción “-s”. La opción “-s” nos permite imprimir no solo los nombres de los archivos sino también sus tamaños en bytes. En el siguiente comando del árbol, primero se agrega la bandera «-f» para tomar la jerarquía de los archivos y directorios junto con la ruta. Luego, el indicador «-s» se usa para especificar el tamaño de los archivos y subdirectorios de ese árbol.

$ árbol –f -s

-f [ error al abrir dir ]

0 directorios, 0 archivos

opción de comando de árbol “-df” : la opción “d” permite que el comando de árbol genere la jerarquía de árbol de subdirectorios sin los nombres de archivo. Hemos establecido el comando de árbol donde la opción «-d» y «-f» se combinan para obtener los subdirectorios con la ruta completa.

$ sudo árbol -df

0 directorios

opción de comando de árbol “-L” : La opción de comando de árbol “-L” nos permite especificar el número máximo de carpetas obtenidas a través del comando de árbol. Limitar la profundidad es beneficioso cuando solo necesitamos explorar las primeras etapas de estructuras de carpetas extremadamente profundas. En el siguiente comando bash tree, la opción «-L» se da con el número «3», lo que indica que solo se pueden mostrar tres archivos o subdirectorios en la jerarquía del árbol.

$ árbol –L 3

–L [ error al abrir dir ]

3 [ error al abrir dir ]

Conclusión

El comando bash tree ayuda a descubrir cómo se organizan los archivos en nuestro sistema. Primero instalamos el comando de árbol en el shell bash y luego obtuvimos un breve detalle sobre el comando usando la opción man y help. El comando de árbol de bash tiene varias opciones, de las cuales se implementan pocas en bash para explorar la funcionalidad de estas opciones.