Uso del comando 'BaseName' para leer el nombre de archivo
El comando 'Basename' se usa para leer el nombre del archivo sin extensión desde una ruta de directorio o archivo.
Sintaxis:
nombre de nombre de base [sufijo]
o
opción de nombre de base ... nombre ..
Aquí, el nombre puede contener el nombre de archivo o el nombre de archivo con ruta completa. El sufijo es opcional y contiene la parte de extensión del archivo que el usuario desea eliminar. El comando 'Basename' tiene algunas opciones que se describen a continuación.
Opción
Nombre | Descripción |
-a | Se usa para pasar múltiples nombres de archivo con ruta o sin ruta como argumentos de comando. |
-s | Se usa para pasar la extensión como sufijo que necesita eliminar. |
-z | Se usa para mostrar los múltiples nombres de archivo separando cada archivo con NULL. |
-ayuda | Se utiliza para mostrar la información del comando 'Basename'. |
-versión | Se utiliza para mostrar la información de la versión. |
Ejemplo-1: Usando nombre y sufijo
El siguiente comando 'BaseName' recuperará el nombre de archivo con extensión. Se omite el sufijo de este comando. Aquí, la salida es 'producto.TXT'.
$ Basename/Home/Fahmida/Code/Product.TXT
Si desea recuperar el nombre de archivo sin extensión, entonces debe proporcionar la extensión del archivo como sufijo con el comando 'BaseName'. Aquí, la extensión es ".TXT". Ejecute el siguiente comando para eliminar la extensión del archivo.
$ Basename/Home/Fahmida/Code/Product.TXT .TXT
Ejemplo-2: usando la opción y el nombre '-a'
El uso del comando '-A' del comando 'BaseName' se muestra en este ejemplo. Aquí, se pasan dos rutas de archivo como argumentos con el comando 'BaseName'. Cada nombre de archivo con extensión se recuperará de la ruta e imprimirá por Newline.
$ Basename -A/Home/Fahmida/Index.HTML/HOME/FAHMIDA/CODE/EMP.TXT
Ejemplo-3: usando la opción y el nombre '-Z'
La opción '-z' se usa con el comando 'BaseName' para imprimir los múltiples nombres de archivo con valor nulo en lugar de Newline. El siguiente comando usa dos opciones juntas, '-a' y '-z'. Aquí, dos nombres de archivo, índice.html y Embem.TXT imprimirá sin espacio o nueva línea.
$ Basename -az/Home/Fahmida/Index.HTML/HOME/FAHMIDA/CODE/EMP.TXT
Ejemplo-4: usando la opción y el nombre '-s'
El siguiente comando se puede usar como una alternativa de sufijo con 'Basename'. La extensión del archivo debe pasar con la opción '-sh' para eliminar la extensión del archivo del archivo. El siguiente ejemplo eliminará la extensión, '-sh' del archivo ', adición.mierda.
$ Basename -S .SH adición.mierda
Ejemplo-5: eliminar la extensión del archivo sin sufijo
Si no conoce la extensión del archivo que desea eliminar del nombre de archivo, este ejemplo lo ayudará a resolver el problema. Crea un archivo llamado Read_file.mierda con el siguiente código para recuperar el nombre de archivo de cualquier extensión. El comando 'sed' se usa en este ejemplo para eliminar cualquier tipo de extensión del nombre de archivo. Si ejecuta el script, la salida será 'promedio'Después de eliminar la extensión'py'.
Read_file.mierda
#!/bin/bash
# Establezca el nombre de archivo con ruta
filename = "/home/fahmida/code/promedio.py "
# Lea el nombre de archivo sin extensión utilizando el comando 'BASNAME' y 'SED'
echo "$ (nombre de base" $ nombre de archivo "| Sed 's/\ (.*\) \ ... */\ 1/') "
Ejecutar el guión.
$ bash read_file.mierda
Ejemplo-6: Convertir la extensión del archivo de TXT a DOCX
El nombre de archivo sin extensión necesita convertir el archivo de una extensión a otra. Este ejemplo muestra que cómo puede cambiar la extensión de todos los archivos de texto (.txt) en los archivos de la palabra (.docx) usando el comando 'Basename' en el script bash. Crea un archivo llamado, convertir_file.mierda Con el siguiente código. Aquí, se usa un bucle for-in para leer todos los archivos de texto con ".TXT" extensión del directorio actual. El nombre de archivo sin extensión se lee mediante el comando 'BaseName' y se renombra al agregar ".DOCX ”Extensión en cada iteración del bucle.
convertir_file.mierda
#!/bin/bash
# El bucle leerá cada archivo de texto del directorio actual
para el nombre de archivo en 'ls *.TXT'
hacer
# Imprima el nombre de archivo de texto antes de la conversión
echo "nombre de archivo antes de conversión: $ nombre de archivo"
# Cambie la extensión del archivo TXT a DOCX
MV - "$ FileName" "$ (BaseName -" $ FileName " .TXT).docx "
hecho
Ejecutar el guión.
$ bash convert_file.mierda
Verifique que los archivos de texto se conviertan o no utilizando el comando 'LS'.
$ LS
Ejemplo-7: Lea el nombre de archivo sin extensión utilizando la expansión del parámetro de shell
La expansión del parámetro de shell es otra forma de leer el nombre de archivo sin extensión en Bash. Este ejemplo muestra los usos de la expansión de los parámetros de shell. El siguiente comando almacenará el nombre de ruta del archivo en la variable, $Nombre del archivo.
$ filename = "/var/usr/temp/myfile.alquitrán.GZ "
El siguiente comando eliminará todos los tipos de extensión de la ruta y almacenará la ruta del archivo sin extensión en la variable, $ Archivo1.
$ file1 = "$ FileName %%.* "
El siguiente comando imprimirá el nombre de archivo solo desde la ruta. Aquí, la salida será 'mi archivo'.
$ echo "$ file1 ##*/"
Si el nombre de archivo contiene dos extensiones con dos puntos (.) y desea leer el nombre de archivo eliminando la última extensión del archivo, entonces debe usar el siguiente comando. Ejecute el siguiente comando que almacene la ruta del archivo en la variable, $ file2 eliminando la última extensión del archivo.
$ file2 = "$ FileName%.* "
Ahora, ejecute el siguiente comando para imprimir el nombre de archivo con un punto (.) extensión. Aquí, la salida será "mi archivo.alquitrán".
$ echo "$ file2 ##*/"
Se requiere nombre de archivo sin extensión para diversos fines. Algunos usos del nombre de archivo sin extensión se explican en este tutorial mediante el uso de algunos ejemplos, como la conversión de archivos. Este tutorial ayudará a aquellos usuarios que estén interesados en aprender las formas de separar el nombre y la extensión del archivo de la ruta del archivo. Dos maneras se explican aquí. El usuario puede seguir cualquiera de estas formas de extraer el nombre de archivo solo de la ruta del archivo.