Tutoriales

Cómo crear archivos con caracteres especiales en Linux

A menudo nos encontramos con nombres de archivos y carpetas. En la mayoría de los casos, el nombre del archivo/carpeta está relacionado con el contenido del archivo/carpeta y comienza con números y caracteres.

Los nombres de archivo alfanuméricos son muy comunes y muy utilizados, pero este no es el caso cuando tenemos que lidiar con nombres de archivos/carpetas con caracteres especiales en ellos.

notas: Podemos tener cualquier tipo de archivo, pero por simplicidad y facilidad de implementación, trataremos con archivos de texto (. TXT), a lo largo de todo el artículo.

Tabla de Contenidos

Nombres de archivo más comunes en Linux

Ejemplos de los nombres de archivo más comunes son:

abc.txt
avi.txt
debian.txt
...

Ejemplos de nombres de archivos numéricos son:

121.txt
3221.txt
674659.txt
...

Ejemplos de nombres de archivo alfanuméricos son:

eg84235.txt
3kf43nl2.txt
2323ddw.txt
...

Ejemplos de nombres de archivo menos comunes con caracteres especiales:

#232.txt
#bkf.txt
#bjsd3469.txt
#121nkfd.txt
-2232.txt
-fbjdew.txt
-gi32kj.txt
--321.txt
--bk34.txt
...

Una de las preguntas más obvias aquí es: quién crea/maneja exactamente los nombres de archivos/carpetas con hashes (#)un punto y coma (;)estrellarse (-) o cualquier otro carácter especial.

Estoy de acuerdo con usted en que tales nombres de archivo son poco comunes, pero su caparazón no debería romperse/abandonar cuando tenga que lidiar con dichos nombres de archivo. Técnicamente, cualquier cosa, ya sea una carpeta, un controlador o cualquier otra cosa, se considera un archivo en Linux.

Nombres de archivo punteados en Linux

En Linux, un nombre de archivo que comienza con un guión ("-") a menudo referido como «nombre de archivo punteado» o»nombre de archivo con guión«. El uso de estos nombres de archivo a veces puede causar problemas, ya que los guiones iniciales pueden malinterpretarse como opciones o ser señalados por las utilidades de la línea de comandos.

Crear archivo punteado en Linux

Para usar nombres de archivos con guiones en Linux, primero, cree un archivo que comience con un guión (-)explicar -abx.txt Usa comandos táctiles.

$ touch -abc.txt

salida de muestra:

touch: invalid option -- 'b'
Try 'touch --help' for more information.

El motivo del error anterior es que el shell interpreta cualquier cosa después del guión (-)como opción, aparentemente, no existe tal opción, de ahí el error.

Para corregir tales errores, tenemos que decirle al shell bash que no interprete nada después de un carácter especial (guión aquí), como una opción.

Hay dos formas de resolver este error:

$ touch -- -abc.txt		[Option #1]
$ touch ./-abc.txt		[Option #2]

Puede verificar los archivos creados por las dos formas anteriores ejecutando el comando ls o ls -l para una lista larga.

$ ls -l

total 0
.rw-rw-r-- tecmint tecmint   0 B  Tue Jun 20 10:32:43 2023 -abc.txt
Crear archivo punteado en Linux

Editar archivo punteado en Linux

Para editar archivos con nombres de archivo con puntos, puede usar cualquiera de los editores de texto disponibles. Aquí hay un ejemplo usando el editor de texto nano:

$ nano -- -abc.txt 
or 
$ nano ./-abc.txt 

puedes reemplazar Nano Use cualquier otro editor de su elección, por ejemplo, el editor vim, así:

$ vim -- -abc.txt 
or 
$ vim ./-abc.txt 

Renombrar archivos punteados en Linux

Para cambiar el nombre de un archivo con un nombre de archivo con puntos, puede usar el comando mv como se muestra.

Por ejemplo, cambie el nombre a «-abc.txt» llegar»-a.txt«, usarías:

$ mv -- -abc.txt -a.txt
OR
mv ./-abc.txt ./-a.txt

Eliminar archivos punteados en Linux

Para eliminar archivos con nombres de archivo con puntos, puede usar el comando rm como se muestra.

$ rm -- -abc.txt
OR
$ rm ./-abc.txt 

Si tiene una carpeta con muchos archivos con un guión en su nombre y desea eliminarlos todos a la vez, haga lo siguiente:

$ rm ./-*

Para cualquier número de guiones y sus apariciones en un nombre de archivo, siga las mismas reglas que arriba. Ahora mismo, -abc.txt, ab-c.txt, abc-.txtETC.

Para nombres de carpetas con cualquier cantidad de guiones y sus ocurrencias, siga las mismas reglas que se discutieron anteriormente, excepto que debe usar ‘ al eliminar una carpetarm-rf‘ como:

$ rm -rf -- -abc
or
$ rm -rf ./-abc

Nombres de archivos hash en Linux

En Linux, "#" Los caracteres no están restringidos ni reservados para ningún propósito específico en los nombres de archivo.puedes usarlo "#" Un carácter como cualquier otro carácter alfanumérico en un nombre de archivo.

Sin embargo, vale la pena mencionar algunos caracteres especiales, incluyendo "#"Tiene un significado especial en ciertos contextos o cuando se usa con comandos o utilidades específicas.

Por ejemplo, "#" los caracteres se usan comúnmente en los scripts de shell para indicar comentarios.Si está escribiendo un script de shell y desea incluir "#" caracteres en los nombres de archivo, se recomienda escapar o citar adecuadamente los nombres de archivo para evitar cualquier interpretación accidental como comentarios.

Crear un archivo hash en Linux

Aquí hay un ejemplo de cómo crear un archivo. "#" Caracteres en los nombres de archivo:

$ touch #abc.txt

salida de muestra:

touch: missing file operand
Try 'touch --help' for more information.

El motivo del error anterior es que bash está interpretando #abc.txt Como comentario, así que ignóralo. Entonces, el comando táctil se pasa sin ningún operando de archivo y, por lo tanto, es falso.

Para corregir tales errores, puede pedirle a bash que no interprete # como comentario.

$ touch ./#abc.txt
or
$ touch '#abc.txt'

Y verifique el archivo recién creado:

$ ls -l

.rw-rw-r-- tecmint tecmint 0 B Tue Jun 20 11:11:00 2023 #abc.txt
Crear un archivo hash en Linux
Crear un archivo hash en Linux

Ahora cree un archivo cuyo nombre contenga # En cualquier lugar menos mendigando.

$ touch ./a#bc.txt
$ touch ./abc#.txt

or
$ touch 'a#bc.txt'
$ touch 'abc#.txt'

¿Qué sucede cuando creas dos archivos (como A y #ANTES DE CRISTO)inmediatamente:

$ touch a.txt #bc.txt

Aparentemente, del ejemplo anterior, solo crea el archivo ‘A‘y archivo’#ANTES DE CRISTO‘ ha sido ignorado. Para ejecutar con éxito el escenario anterior, podemos hacer,

$ touch a.txt ./#bc.txt
or
$ touch a.txt '#bc.txt'

Finalmente, use el comando ls para verificar el archivo que acaba de crear.

$ ls -l
Verificar archivos hash en Linux
Verificar archivos hash en Linux

Renombrar o duplicar archivos hash en Linux

Para cambiar el nombre del archivo hash que puede utilizar MV Los comandos se muestran en la figura.

$ mv ./#bc.txt ./#cd.txt
or
$ mv '#bc.txt' '#cd.txt'

Para copiar el archivo hash, puede usar el comando cp como se muestra.

$ cp ./#cd.txt ./#de.txt
or
$ cp '#cd.txt' '#de.txt'

Editar o eliminar archivos hash en Linux

Para editar el archivo hash puedes usar Nano o empuje El editor se muestra en la figura.

$ vi ./#cd.txt
or
$ vi '#cd.txt'
$ nano ./#cd.txt
or
$ nano '#cd.txt'

Para eliminar el archivo hash puedes usar RM Los comandos se muestran en la figura.

$ rm ./#bc.txt 
or
$ rm '#bc.txt'

Eliminar todos los archivos con un hash (#) en el nombre del archivo, puede usar:

$ rm ./#*

Nombres de archivo de punto y coma en Linux

En caso de que no lo sepa, los puntos y comas actúan como separadores de comandos Intento Tal vez hay otro caparazón. Los puntos y comas le permiten ejecutar varios comandos a la vez y actúan como separadores. ¿Ha tratado con algún nombre de archivo que contenga punto y coma? Si no estás aquí, estarás.

Cree un archivo que contenga puntos y comas.

$ touch ;abc.txt

Salida de ejemplo:

touch: missing file operand
Try 'touch --help' for more information.
bash: abc.txt: command not found

El motivo del error anterior es cuando ejecuta el comando anterior Intento explicar tocar como comando, pero no puede encontrar ningún operando de archivo antes del punto y coma, por lo que informa un error.

También informa de otro error que es ‘abc.txt‘ comando no encontrado, simplemente porque después del punto y coma Intento espera otro comando, y ‘abc.txt‘, no es un comando.

Para resolver tales errores, dígale al Intento No interprete los puntos y comas como separadores de comandos, como:

$ touch ./';abc.txt'
or
$ touch ';abc.txt'

notas: Encerramos el nombre del archivo entre comillas simples ''que le dice a BASH ; es parte del nombre del archivo, no un separador de comandos.

Las operaciones restantes (es decir, copiar, mover, eliminar) realizadas en archivos y carpetas cuyos nombres contienen punto y coma se pueden realizar directamente encerrando el nombre entre comillas simples.

Caracteres especiales en los nombres de archivo de Linux

En Linux, los nombres de archivo pueden contener la mayoría de los caracteres especiales, incluidos espacios, puntos, guiones, guiones bajos e incluso símbolos, como @, !, $y %.

La siguiente es una lista de caracteres especiales que se deben usar con precaución o se deben considerar escapados cuando se usan en nombres de archivo:

signo más (+) en el nombre del archivo

crear signo más (+) archivo en Linux, puede usar tocar junto con el nombre del archivo entre comillas simples.

$ touch '+ravi.txt' 

Signos de dólar ($) en nombres de archivo

Crear signos de dólar ($) archivo en Linux, puede usar tocar junto con el nombre del archivo entre comillas simples.

$ touch '$ravi.txt' 

Porcentaje (%) en nombre de archivo

Crear un signo de porcentaje (%) archivo en Linux que puede usar.

$ touch '%ravi.txt' 

Asterisco

en nombre de archivo (*) crear asterisco

$ touch '*ravi.txt' 

archivo en Linux que puede usar.notas *: cuando tenga que eliminar archivos que empiecen por

$ rm *
or
$ rm -rf *

no elimine dichos archivos con el siguiente comando.

$ rm ./*.txt

En cambio, usa,

Signos de exclamación (!) en nombres de archivo

$ touch '!ravi.txt'

Simplemente encierre el nombre del archivo entre comillas simples y el resto es igual.

El signo (@) en el nombre del archivo @ Nada extra, para tratar un nombre de archivo con

$ touch '@ravi.txt'

Las firmas son archivos normales.

Un signo de intercalación (^) en un nombre de archivo ^ No se requiere atención adicional, utilizando un

$ touch '^ravi.txt'

en el nombre del archivo como un archivo normal.

El ampersand (&) en el nombre del archivo

$ touch '&ravi.txt'

El nombre del archivo debe estar entre comillas simples y listo.

paréntesis () en el nombre del archivo

$ touch '(ravi.txt)'

Si el nombre del archivo tiene paréntesis, debe incluir el nombre del archivo entre comillas simples.

Llaves ({}) en nombres de archivo

$ touch {ravi.txt}

No se requiere cuidado adicional. Simplemente trátelo como otro archivo.

Chevrones (<>) en nombres de archivo

$ touch ''

Los nombres de archivo con cheurones deben estar entre comillas simples.[]Corchetes(

) en el nombre del archivo

$ touch [ravi.txt]

Trate los nombres de archivo con corchetes como archivos normales y no necesita prestar especial atención.

Guiones bajos (_) en nombres de archivo

$ touch _ravi.txt

Son comunes y no requieren nada extra. Solo haz lo que haces con los archivos normales.

es igual a (=) en el nombre del archivo

$ touch =ravi.txt

El signo igual no cambia nada, puedes usarlo como un archivo normal.

Barras invertidas (\) en los nombres de archivo

$ touch '\ravi.txt'

La barra invertida le dice al shell que ignore el siguiente carácter. Tienes que encerrar el nombre del archivo entre comillas simples como hicimos en el caso del punto y coma. El resto es sencillo.

Reenviar (\) en nombres de archivo (/)No puede crear archivos con barras diagonales en sus nombres

, hasta que obtenga un error en su sistema de archivos. No hay forma de escapar de las barras diagonales. Entonces, si pudieras crear un archivo como ‘/ravi.txt’ o ‘b/c.txt’

Entonces, o tiene un error en su sistema de archivos, o tiene soporte Unicode que le permite crear un archivo con barras inclinadas. En este caso, la barra diagonal no es una barra diagonal real, sino un carácter Unicode que parece una barra diagonal.

Signo de interrogación (?) en el nombre del archivo

$ touch '?ravi.txt'

Nuevamente, este es un ejemplo en el que no necesita probar nada especial. Los nombres de archivo con signos de interrogación se pueden manejar de la manera más general.

Un punto (.) en un nombre de archivo (.) archivos que comienzan con puntoMuy especiales en Linux, llamados dotfiles. Estos son archivos ocultos, normalmente archivos de configuración o del sistema. Tienes que usar el interruptor ‘-A‘ o ‘-A ‘y ls comando

Echa un vistazo a estos archivos.

$ touch '.ravi.txt'

Crear, editar, renombrar y eliminar dichos archivos es muy simple.notas (.) : En Linux, puede tener tantos puntos

$ touch 1.2.3.4.5.6.7.8.9.10.txt

en el nombre del archivo según sea necesario. A diferencia de otros puntos del sistema en el archivo, el nombre no está destinado a separar el nombre y la extensión. Puede crear un archivo con múltiples puntos:

$ ls -l

total 0
-rw-r--r-- 1 avi avi 0 Jun  8 14:32 1.2.3.4.5.6.7.8.9.10.txt

y compruébalo como:

Comas (,) en los nombres de archivo

$ touch ',ravi.txt'
or
$ touch ',ravi,.txt'

Puede tener una coma en el nombre del archivo todo el tiempo que desee, no necesita nada adicional. Simplemente hágalo de la manera normal, como un nombre de archivo simple.

Dos puntos (:) en nombre de archivo

$ touch :12.txt
or
$ touch ':ravi:.txt'

Puede usar dos puntos en los nombres de archivo todo el tiempo que desee, no necesita nada adicional. Simplemente hágalo de la manera normal, como un nombre de archivo simple.

Comillas dobles («») en el nombre del archivo

$ touch "15'.txt"

and

$ touch 'ravi”.txt'

Para incluir comillas en los nombres de archivo, debemos usar la regla de intercambio. Es decir, si necesita comillas simples en el nombre del archivo, escriba el nombre del archivo entre comillas dobles, y si necesita comillas dobles en el nombre del archivo, escríbalo entre comillas simples.

Una tilde (~) en un nombre de archivo Algunos editores en Linux, como emacs

$ touch '~ravi.txt'
or
$touch 'anusha~.txt'

Cree un archivo de copia de seguridad del archivo que se está editando. Los archivos de copia de seguridad tienen el nombre del archivo original más una tilde al final del nombre del archivo. Puede tener un archivo en cualquier lugar con una tilde en su nombre, como:

espacios en nombres de archivosCree un archivo con un nombre que tenga espacios entre caracteres/palabras, como «hola mi nombre es ravi.txt

«.

$ touch hi\ my\ name\ is\ ravi.txt

hi my name is ravi.txt

Usar nombres de archivo con espacios no es una buena idea, si debe usar un nombre legible diferente, debe usar guiones bajos o guiones. Sin embargo, si se debe crear un archivo de este tipo, se debe usar una barra invertida que ignore el siguiente carácter. Para crear el archivo anterior tenemos que hacer esto.

He tratado de cubrir todos los escenarios con los que te puedes encontrar. La mayoría de las implementaciones anteriores son explícitas para el shell BASH y es posible que no funcionen para otros shells.

Si sientes que me estoy perdiendo algo (es común y humano), puedes sugerir el tuyo en los comentarios a continuación. Ponte en contacto y sigue comentando. ¡Estén atentos y manténganse en contacto! ¡Dale me gusta y compártenos y ayúdanos a correr la voz!

LEER  Cómo convertir video a GIF usando ffmpeg CLI en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba