Tengo un Galaxy S6 con Android 7.0:
zeroflte:/ $ getprop ro.build.version.release
7.0
Existe un archivo que utiliza el punto de código Unicode U+1F308
( RAINBOW
) en su nombre:
zeroflte:/ $ ls -al /sdcard/tmp
total 1024
drwxrwx--x 5 root sdcard_rw 4096 2020-07-09 05:44 .
drwxrwx--x 49 root sdcard_rw 4096 2020-06-25 07:27 ..
-rw-rw---- 1 root sdcard_rw 17 2018-04-25 20:47 123.org
drwxrwx--x 2 root sdcard_rw 4096 2020-07-09 05:54 crypt
-rw-rw---- 1 root sdcard_rw 9 2020-07-08 13:26 .gpx
zeroflte:/ $
Sin embargo, no tengo ni idea de cómo utilizar este nombre de archivo en un comando adb shell. Me gustaría aplicar ls -1 -d -l /sdcard/tmp/\.gpx
o similar, pero no puedo entrar en el RAINBOW
char. ¿Alguna idea de cómo hacer esto?
2 votos
¿Qué pasa con
ls -1dl /sdcard/tmp/*.gpx
? O cambiar el nombre del archivo para eliminar el carácter especial.0 votos
¿Intentaste
Alt +
oCtrl + Shift + U
o cualquier combinación de teclas aplicable a su sistema operativo para introducir caracteres unicode.0 votos
No lo necesito de forma interactiva. Soy el autor del paquete Tramp de Emacs, que utiliza
adb shell
para acceder a los archivos de los dispositivos Android. Así que necesito algo que pueda ser utilizado en un script.0 votos
Por desgracia, no.
zeroflte:/ $ ls -dl1 /sdcard/tmp/$(printf '\U0001f308').gpx ls: /sdcard/tmp/\U0001f308.gpx: No such file or directory
0 votos
No lo sé. ¿Cómo puedo obtener esta cadena?
0 votos
Mi error. Debido a una ruta diferente estaba usando mi GNU
printf
binario. Preguntemos al desarrollador de MKSH sobre la secuencia de escape unicode si está soportada. @mirabilos señor se necesita su ayuda.0 votos
Tal vez con
sed
? Creo que es parte de busybox y soporta el escape de unicode. Además, ¿no quieres\uD83C\uDF08
y no\u0001F308
?0 votos
No funciona.
echo x | sed -re s/x/\x01\xF3\x08/g
resultados enx01xF3x08
0 votos
¿Puede utilizar la referencia del inodo para hacer el cambio de nombre? ¿O hay que trabajar con índices arbitrarios?
0 votos
Todo lo que sé son los nombres de los archivos. El nombre de archivo multibyte también podría ser el objetivo del renombrado, donde un número de inodo no ayudaría en absoluto. Como se ha dicho, lo necesito para el acceso de secuencias de comandos a través de adb shell, desde dentro de Emacs.