GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de nombre base en Linux

basename es una utilidad de línea de comandos que elimina el directorio y el sufijo final de los nombres de archivo dados.

Usando el basename Comando #

El basename El comando admite dos formatos de sintaxis:

basename NAME [SUFFIX]
basename OPTION... NAME...

basename toma un nombre de archivo e imprime el último componente del nombre de archivo. Opcionalmente, también puede eliminar cualquier sufijo final. Es un comando simple que acepta solo unas pocas opciones.

El ejemplo más básico es imprimir el nombre del archivo con los directorios principales eliminados:

basename /etc/passwd

La salida incluirá el nombre del archivo:

passwd
shadow

El basename el comando elimina cualquier / final caracteres:

basename /usr/local/basename /usr/local

Ambos comandos producirán el mismo resultado:

local
local

De forma predeterminada, cada línea de salida termina en un carácter de nueva línea. Para terminar las líneas con NUL , use el -z (--zero ) opción.

Múltiples entradas #

El basename El comando puede aceptar múltiples nombres como argumentos. Para hacerlo, invoque el comando con -a (--multiple ), seguida de la lista de archivos separados por espacios.

Por ejemplo, para obtener los nombres de archivo de /etc/passwd y /etc/shadow ejecutarías:

basename -a /etc/passwd /etc/shadow
passwd
shadow

Eliminación de un sufijo final #

Para eliminar cualquier sufijo final del nombre del archivo, pase el sufijo como segundo argumento:

basename /etc/hostname name
host

Generalmente, esta característica se usa para eliminar las extensiones de archivo:

basename /etc/sysctl.conf .conf
sysctl

Otra forma de eliminar un sufijo final es especificar el sufijo con -s (--suffix=SUFFIX ) opción:

basename -s .conf /etc/sysctl.conf
sysctl

Esta forma de sintaxis le permite eliminar cualquier sufijo final de varios nombres:

basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf
sysctl
sudo

Ejemplo #

El siguiente ejemplo muestra cómo usar el basename comando dentro de bash for looppara cambiar el nombre de todos los archivos que terminan con “.jpeg” en el directorio actual reemplazando la extensión de archivo de “.jpeg” a “.jpg”:

for file in *.jpeg; do
    mv -- "$file" "$(basename $file .jpeg).jpg"
done

Si está utilizando bash como shell, en lugar de invocar basename , puede quitar la extensión final usando la Expansión de parámetros de shell.

Conclusión #

El basename El comando elimina cualquier directorio inicial y sufijo final del nombre.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Comando ifconfig de Linux

  2. comando linux mv

  3. Linux du comando

  4. Comando IP de Linux

  5. Comando cd de linux

Comando libre en Linux

Comando Sudo en Linux

Localizar comando en Linux

Comando W en Linux

Al mando en Linux

Comando Df en Linux