Posible duplicado:
eliminación de archivos con caracteres extraños en el nombre de archivo en OS X
Tengo una carpeta que tiene un archivo cuyo nombre es Iconos y termina con un carácter adicional no imprimible. Puedo ver la no imprimible si estoy con la opción -B:
$ ls -B
$ Icon\015
si uso ls -b obtengo:
$ ls -b
$ Icon\r
Me gustaría eliminar el archivo, pero no puedo encontrar una manera de escribir el carácter no imprimible. Si lo hago:
$ rm Icon\015
Yo obtengo:
$ Icon\015: No such file or directory
Si lo hago:
$ rm Icon\r
Yo obtengo:
$ Icon\r: No such file or directory
Podría eliminar toda la carpeta, pero necesito una forma más genérica de hacerlo, ya que estos archivos aparecen en las carpetas de muchos usuarios.
rm Icon*
. Alternativamente, escribarm Icon
y luego presione la tecla <Tab> (completaría el nombre de archivo, si solo hay un archivo que comienza con Icon).rm -i Icon*
? Además, ¿hay otros archivosIcon
en el mismo directorio pero que no quieres eliminar?Respuestas:
El shell transformará automáticamente cada CR (
\r
) en un LF (\n
) y ejecutará el comando anterior. Sin embargo, puede usarecho
para producir un personaje LF. Todo esto debería funcionar:La última opción debe ser bastante robusta y tratar con todos los posibles personajes extraños.
fuente
men echo
muestra-e enable interpretation of backslash escapes
.Hay varias formas de incluir caracteres que no se imprimen en una línea de comando. La opción más simple (solo bash) es usar
$
antes de una cadena entre comillas simples, lo que hace que bash escape la sustitución dentro de la cadena. Tenga en cuenta que maneja varios tipos de secuencias de escape, por lo que ambas funcionarían:O bien, puede escribir Control-V antes de Control-M (también conocido como return), que le dice al shell "el siguiente carácter que escriba debe incluirse literalmente en el comando":
(Tenga en cuenta que ^ V no es realmente parte del comando, por lo que no hará eco en la línea de comando).
fuente
Para un carácter no imprimible puede usar '?' como comodín para un personaje. Entonces, abc? Def? .Zip significaría abc1def2.zip y también abc! Def # .zip.
fuente