Comando de árbol de Bash

Comando de árbol de Bash

El comando Bash Tree es comparable al conocido comando LS de Linux, que se utiliza para enumerar los archivos y directorios. La principal diferencia entre los comandos es que los archivos y carpetas se presentan en una estructura similar a un árbol por el comando del árbol. El comando de árbol itera a través de una jerarquía de archivos e imprime los archivos y subdirectorios en una lista formatada 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 obtuvimos los archivos o directorios ocultos.

Ejemplo # 1: Instalación del árbol en Bash.

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

$ Sudo apt instalación de instalación
[sudo] Contraseña para Linux:
Listas de paquetes de lectura ... Hecho
Árbol de dependencia del edificio
Lectura de la información del estado ... Hecho
Se instalarán los siguientes nuevos paquetes:
árbol
0 actualizado, 1 recién instalado, 0 para eliminar y 0 no actualizado.
Necesito obtener 43.0 kb de archivos.
Después de esta operación, se utilizarán 115 kb de espacio en disco adicional.
Obtener: 1 http: // pk.archivo.ubuntu.com/ubuntu focal/universo amd64 árbol amd64 1.8.0-1 [43.0 KB]
Obtenido 43.0 KB en 1S (33.4 kb/s)
Seleccionar el árbol de paquetes no seleccionado previamente no seleccionado.
(Base de datos de lectura ... 188740 archivos y directorios actualmente instalados.)
Preparándose para desempacar ... /Tree_1.8.0-1_amd64.debutante…
Desempacar árbol (1.8.0-1) ..
Configuración del árbol (1.8.0-1) ..
Procesamiento de desencadenantes para Man-DB (2.9.1-1) ..

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

$ tree -version
Árbol V1.8.0 (c) 1996 - 2018 por Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

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

$ Tree -Help
Uso: árbol [-acdfghilnpqrstuvxacdfjqnsux] [-h basehref] [-t título]
[-L nivel [-r]] [-p patrón] [-i patrón] [-o nombre de archivo] [--version]
[--help] [--inodes] [--device] [--noreport] [--nolinks] [---dirsfirst]
[-Charset Charset] [--Filelimit [=]#] [--Si] [-Timefmt [=]]
[--sort [=]] [--MatchDirs] [--ignore-Case] ​​[--fromfile] [-]
[]
------- Opciones de listado -------
-Se enumeran todos los archivos.
-D directores de listas D solamente.
-L SIGAR LINTS SIMBÓLICOS COMO Directorios.
-f Imprima el prefijo de ruta completa para cada archivo.
-X permanecer solo en el sistema de archivos actual.
-L nivel de L Único desciende los directorios de nivel profundos.
-Rerun Tree cuando alcanzó el nivel máximo de Dir.
-P Lista de patrones solo aquellos archivos que coinciden con el patrón dado.
-Patrón no enumero archivos que coincidan con el patrón dado.
--Ignorar el caso Ignora el caso cuando coincide con el patrón.
--MatchDirs incluye nombres de directorio en la coincidencia de patrones -p.
--NOREPORPA APAGADO DE APAGADO/RESTULAR DE DIRECTORIO al final del listado de árboles.
--Charset x use Charset x para terminal/HTML y salida de la línea de sangría.
--Filelimit # No desciendan los DIR con más de # archivos en ellos.
--tiempo de tiempo Imprimir y formatear el tiempo de acuerdo con el formato .
-o Salida del nombre de archivo a archivo en lugar de stdout.
------- Opciones de archivo -------
-q Imprima caracteres no impractables como '?'.
-N Imprimir caracteres no impintables como es.
-P Cita nombres de archivo con cotizaciones dobles.
-p Imprima 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 de GID.
-s Imprima el tamaño en bytes de cada archivo.
-h Imprima el tamaño de una manera más legible humana.
--Si -Like -H, pero use en unidades SI (poderes de 1000).
-D Imprima la fecha de la última modificación o cambio de estado (-c).
-F APCENDER '/', '=', '*', '@', '|' o '>' según LS -F.
--inodos imprime el número de inodo de cada archivo.
--Imprimir el dispositivo Número de identificación del dispositivo al que pertenece cada archivo.
------- Opciones de clasificación -------
-V Ordenar archivos alfanuméricamente por versión.
-T Ordenar archivos por último tiempo de modificación.
-c Ordenes de clasificación por último tiempo de cambio de estado.
-Dejas archivos sin clasificar.
-r revertir el orden del tipo.
--Directorios de lista de DirSfirst antes de los archivos (-U deshabilitar).
--Ordenar x Seleccionar ordenar: nombre, versión, tamaño, mtime, ctime.
------- Opciones gráficas -------
-No imprimo líneas de sangría.
-Una impresión de líneas de sangría gráfica de las líneas ANSI.
-S impresa con líneas de sangría de gráficos CP437 (consola).
-n Apagar la colorización siempre (-c anulaciones).
-C enciende la colorizació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 el formato HTML con Basehref como directorio superior.
-T String Reemplace el título HTML predeterminado y el encabezado H1 con cadena.
--Nolinks apague los hipervínculos en la salida HTML.
------- Opciones de entrada -------
--FromFile lee rutas de los archivos (.= stdin)
------- Opciones misceláneas -------
--Versión Impresión Versión y salida.
--Ayuda a imprimir el uso y este mensaje de ayuda y salida.
-- 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 "hombre".

$ Tree Man

Ejemplo # 2: Uso del comando de árbol 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 la fiesta, solo tenemos que proporcionar la palabra clave "árbol" en el shell 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 del árbol se ejecuta sin ningún argumento, mostró la estructura del á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ó los directorios y archivos totales 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 utilizando 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 corte "/" con la palabra clave del árbol para mirar los archivos y carpetas dentro del directorio actual. Luego, usamos la tubería "|" 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 una estructura similar a un árbol. El colon ":" se encuentra al final que en la prensa mostrará más carpetas y archivos del directorio actual.

$ árbol / | menos
/
├── Bin -> USR/Bin
Boot
│ ├── Config-5.15.0-46 Genérico
│ ├── Config-5.15.0-56-Genérico
│ ├── Efi [Dir de apertura de error]
│ ├── Fuera
│ │ ├── Fonts
│ │ │ └── unicode.PF2
│ │ ├── gfxblacklist.TXT
│ │ ├── SCUB.CFG
│ │ ├── grubenv
│ │ ├── I386-PC
│ │ │ ├── 915 Resolución.modificación
│ │ │ ├── ACPI.modificación
│ │ │ ├── Adler32.modificación
│ │ │ ├── Affs.modificación
│ │ │ ├── AFS.modificación
│ │ │ ├── Ahci.modificación
│ │ │ ├── all_video.modificación
│ │ │ ├── Aout.modificación
│ │ │ ├── Archelp.modificación
│ │ │ ├── ata.modificación
:

El comando del árbol de bash también se puede usar para mostrar el árbol de proceso. Considere el comando a continuación donde el "Proc" representa el proceso que se ejecuta en el directorio actual. Cuando presionamos Entrar en el comando del árbol, genera el proceso de árbol de nuestro directorio en el shell bash.

$ árbol /proc
│ ├── Usuario
│ │ ├── max_cgroup_namespaces
│ │ ├── max_fanotify_groups
│ │ ├── max_fanotify_marks
│ │ ├── max_inotify_instances
│ │ ├── max_inotify_watches
│ │ ├── max_ipc_namespaces
│ │ ├── max_mnt_namespaces
│ │ ├── MAX_NET_NAMESPACES
│ │ ├── max_pid_namespaces
│ │ ├── max_time_namespaces
│ │ ├── max_user_namespaces
│ │ └── max_uts_namespaces
│ └── VM
│ ├── Admin_reserve_kbytes
│ ├── compaction_proactivity
│ ├── Compact_Memory
│ ├── Compact_unevictable_allowed
│ ├── Dirty_background_bytes
│ ├── Dirty_background_ratio
│ ├── Dirty_bytes
│ ├── Dirty_EXPIRE_CENTISECS
│ ├── Dirty_ratio
│ ├── DirtyTime_EXPIRE_SECONDS
│ ├── Dirty_writback_centisecs
│ ├── Drop_caches
│ ├── Extfrag_threshold
│ ├── hugetlb_shm_group
│ ├── laptop_mode
│ ├── Legacy_VA_Layout
│ ├── Lowmem_reserve_ratio
│ ├── max_map_count
│ ├── Memory_failure_early_kill
│ ├── Memory_Failure_Recovery
│ ├── min_free_kbytes
│ ├── Min_slab_ratio
│ ├── Min_unmapped_ratio
│ ├── 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
│ ├── Cluster de página
│ ├── Page_lock_unfairness
│ ├── Panic_on_oom
│ ├── percpu_pagelist_high_fraction
│ ├── stat_interval
│ ├── stat_refresh
│ ├── Swappiness
│ ├── Sin privilegio_userfaultfd
│ ├── user_reserve_kbytes
│ ├── vfs_cache_pressure
│ ├── Watermark_Boost_Factor
│ ├── Watermark_scale_Factor
│ └── Zone_reclaim_Mode
├── Sysrq Trigger
├── Sysvipc
│ ├── Msg
│ ├── Sem
│ └── shm
├── Treve -Self -> 5259/tarea/5259
Timer_list
├── Tty
│ ├── controlador [Dir de apertura de error]
│ ├── Conductores
│ ├── ldisc
│ └── ldiscs
├─omo tiempo de actividad
Versión ├── Versión
├── Version_Signature
├── vmallocinfo
├── vmstat
└── ZoneInfo
Directorios 10618, 169916 archivos

Ejemplo # 3: Uso del comando de árbol 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.

Árbol -A
-cerrar.jsonlz4
│ │ ├──-Estado de sesión.json
│ │ └── Estado.json
│ ├── DirectoryTree.json
│ ├── cifrado-openpgp-passfrase.TXT
│ ├── Preferencias de extensión.json
│ ├ extensiones.json
│ ├── Favicons.sqlite
│ ├── Formhistoria.sqlite
│ ├── Global-Messages-DB.sqlite
│ ├── Historia.sqlite
│ ├── Key4.db
│ ├── Lock -> 127.0.1.1: +2021
│ ├── MororViews.dat
│ ├── Minidumps
│ ├── OpenPGP.sqlite
│ ├── .plato
│ ├── Permisos.sqlite
│ ├── PKCS11.TXT
│ ├── Lugares.sqlite
│ ├── Prefs.js
│ ├── Pings de telemetría guardada
│ │ └── 0C85AD5F-60C2-40D9-A342-F533E121A844
│ ├── Búsqueda.json.mozlz4
│ ├── Security_state
│ ├── Sessioncheckpoints.json
│ ├── Configuración
│ │ └ └── Datos.seguro.papelera
│ ├── SitesecurityServicestate.TXT
│ ├── Almacenamiento
│ │ ├── Valor predeterminado
│ │ ├── LS-Archive.sqlite
│ │ ├── Permanente
│ │ │ └── Chrome
│ │ │ ├── IDB
│ │ │ │ ├── 3870112724rsegmnoittet-es.archivos
│ │ │ │ └── 3870112724rsegmnoittet-es.sqlite
│ │ │ └── .metadatos-v2
│ │ └── Temporal
│ ├── Almacenamiento.sqlite
│ ├── tiempos.json
│ └── XULSTORE.json
├── .VboxClient-Clipboard.pid
├── .vboxClient-Display-Svga-X11.pid
├── .vboxclient-draganddrop.pid
├── .VboxClient-SEAMless.pid
└── .wget-hsts
Directorios 1262, 10126 archivos

Aquí, hemos usado nuevamente el comando Bash Tree con la opción "-a" para mostrar la jerarquía de árboles del directorio especificado "Snap" en el shell bash. El directorio Snap mostró todos los archivos en el formato de árbol en la captura de pantalla a continuación.

Árbol -A ./quebrar
-A [Dir de apertura de error]
./Snap [Dir de apertura de error]
0 Directorios, 0 archivos

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

$ sudo árbol -f
[sudo] Contraseña para Linux:
.
├── ./Comando de árbol bash.dogx
├── ./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, la bandera "-f" se agrega primero 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 los árboles.

$ árbol -f -s
-F [Dir de apertura de error]
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 árboles de los subdirectorios sin los nombres de archivo. Hemos establecido el comando de árbol donde la opción "-d" y "-f" se combina para obtener los subdirectorios con el camino completo.

$ sudo árbol -df
0 Directorios

Opción de comando de árbol "-l": La opción del comando de árbol "-l" nos permite especificar el número máximo de carpetas obtenidas a través del comando del árbol. Limitar la profundidad es beneficioso cuando solo necesitamos explorar las mejores etapas de las estructuras de carpetas extremadamente profundas. En el siguiente comando Bash Tree, la opción "-L" se da con el número "3" que indica que tres archivos o subdirectorios solo se pueden mostrar en la jerarquía de árboles.

$ árbol -l 3
-L [Dir de apertura de error]
3 [Dir de apertura de error]

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 obtenemos un breve detalle sobre el comando usando el hombre y la opción de ayuda. El comando de árbol de Bash tiene varias opciones a partir de las cuales pocas se implementan en Bash para explorar la funcionalidad de estas opciones.