Entonces, de alguna manera, el comando ls
parece mostrarme dos archivos idénticos en un directorio.
$ ls -Blah /System/Library/LaunchDaemons
total 32
drwxr-xr-x 266 root wheel 8.8K Jun 18 10:41 .
drwxr-xr-x 79 root wheel 2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist
-rw-r--r-- 1 root wheel 715B Jun 18 10:35 tftp.plist
Puedo mover, renombrar, editar, etc. uno de los archivos, pero el otro ni siquiera parece estar allí. bash
la finalización de la pestaña incluso muestra archivos idénticos.
Por ejemplo, ingresando lo siguiente y luego presionando TAB
$ sudo mv /System/Library/LaunchDaemons/tftp
tftp.plist tftp.plist
Si cambio el nombre del archivo:
$ sudo mv /System/Library/LaunchDaemons/tftp.plist /System/Library/LaunchDaemons/tftp.plist.derp
La finalización de la pestaña aún muestra el archivo:
$ ls -Blah /System/Library/LaunchDaemons/tf
tftp.plist tftp.plist.derp
Pero el archivo original no modificado no parece 'ls'
$ ls -Blah /System/Library/LaunchDaemons/tftp.plist
ls: /System/Library/LaunchDaemons/tftp.plist: No such file or directory
Sin embargo, si solo enumero los archivos como en el primer fragmento de código anterior, he aquí:
$ ls -Blah /System/Library/LaunchDaemons
total 32
drwxr-xr-x 266 root wheel 8.8K Jun 18 10:41 .
drwxr-xr-x 79 root wheel 2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r-- 1 root wheel 715B Jun 18 10:35 tftp.plist
-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist.derp
¿Alguna idea de lo que está pasando aquí y cómo puedo deshacerme de este archivo fantasma?
Esta es una Mac que ejecuta OS X si eso agrega información al problema. Estaba usando sed
este archivo justo antes de que comenzara la locura.
Editar
He utilizado tanto los indicadores blah
como los Blah
ls
indicadores sin cambios en la salida aparente.
Editar 2
Información adicional solicitada en los comentarios:
$ echo tftp* | xxd
0000000: 7466 7470 2e70 6c69 7374 2020 7466 7470 tftp.plist tftp
0000010: 2e70 6c69 7374 2e64 6572 700a .plist.derp.
Más:
$ printf '<%q>\n' tftp*
<tftp.plist\ >
<tftp.plist.derp>
Aún más:
$ locale │-rw-r--r-- 1 root wheel 495B Sep 9 2014 org.net-snmp.snmpd.plist
LANG="en_US.UTF-8" │-rw-r--r-- 1 root wheel 498B Jan 15 23:15 org.ntp.ntpd.plist
LC_COLLATE="en_US.UTF-8" │-rw-r--r-- 1 root wheel 1.0K Nov 13 2014 org.openldap.slapd.plist
LC_CTYPE="en_US.UTF-8" │-rw-r--r-- 1 root wheel 572B Sep 9 2014 org.postfix.master.plist
LC_MESSAGES="en_US.UTF-8" │-rw-r--r-- 1 root wheel 238B Sep 9 2014 shell.plist
LC_MONETARY="en_US.UTF-8" │-rw-r--r-- 1 root wheel 941B Sep 9 2014 ssh.plist
LC_NUMERIC="en_US.UTF-8" │-rw-r--r-- 1 root wheel 260B Sep 9 2014 telnet.plist
LC_TIME="en_US.UTF-8" │-rw-r--r-- 1 root wheel 715B Jun 18 10:36 tftp.plist
LC_ALL="en_US.UTF-8"
Nota
La respuesta a continuación me ayudó a ver que había un espacio final en el nombre.
ls test\
... ¿Qué pasaría si lo usa ls "*tftp.list*"
? o usar ls
con --show-control-chars
?
echo tftp* | xxd
o algún otro hexdump?
printf '<%q>\n' tftp*
?
en_US.UTF-8
, ls -b
no mostrará espacios en blanco en los nombres de archivo de ninguna manera especial, ya sea en el medio o al final del nombre de archivo. Puede usar una de las respuestas (printf, echo) o filtrar la salida de ls con un programa diseñado para resaltar los espacios en blanco finales comols -1 tftp* | cat -vet