0 votos

Obtener la ruta absoluta con el comando "ls

¿Es posible mostrar la ruta absoluta del archivo cuando se ejecuta ls -l en Android (por ejemplo, a través de adb shell o en una aplicación de terminal)?

Este es el resultado que obtengo de ls -l /etc/ (Tengo acceso Root):

E:\Dropbox\Droid Explorer\src\main\resources\com\droid\explorer\adb>adb shell su root ls -l /etc/
-rw-r--r-- root     root        16656 2009-01-01 03:00 CHANGELOG-CM.txt
-rw-r--r-- root     root         9944 2009-01-01 03:00 CHANGES.txt
-rw-r--r-- root     root       154482 2009-01-01 03:00 NOTICE.html.gz
drwxr-xr-x root     root              2009-01-01 03:00 acdbdata
-rw-r--r-- root     root       598006 2009-01-01 03:00 apns-conf.xml
-rw-r--r-- root     root         5491 2009-01-01 03:00 audio_effects.conf
-rw-r--r-- root     root         6198 2009-01-01 03:00 audio_policy.conf
drwxr-xr-x root     root              2009-01-01 03:00 bash
drwxr-xr-x root     root              2009-01-01 03:00 bluetooth
-rw-r--r-- root     root       101774 2009-01-01 03:00 build-manifest.xml
-rw-r--r-- root     root         1045 2009-01-01 03:00 clatd.conf
drwxr-xr-x root     root              2009-01-01 03:00 dhcpcd
-rw-r--r-- root     root         1362 2009-01-01 03:00 ethertypes
-rw-r--r-- root     root        18300 2009-01-01 03:00 event-log-tags
-rw-r--r-- root     root        14309 2009-01-01 03:00 fallback_fonts.xml

Lo que me gustaría obtener es la ruta absoluta, ej:

E:\Dropbox\Droid Explorer\src\main\resources\com\droid\explorer\adb>adb shell su root ls -l /etc/
-rw-r--r-- root     root        16656 2009-01-01 03:00 /etc/CHANGELOG-CM.txt
-rw-r--r-- root     root         9944 2009-01-01 03:00 /etc/CHANGES.txt
-rw-r--r-- root     root       154482 2009-01-01 03:00 /etc/NOTICE.html.gz
drwxr-xr-x root     root              2009-01-01 03:00 /etc/acdbdata
-rw-r--r-- root     root       598006 2009-01-01 03:00 /etc/apns-conf.xml
-rw-r--r-- root     root         5491 2009-01-01 03:00 /etc/audio_effects.conf
-rw-r--r-- root     root         6198 2009-01-01 03:00 /etc/audio_policy.conf
drwxr-xr-x root     root              2009-01-01 03:00 /etc/bash
drwxr-xr-x root     root              2009-01-01 03:00 /etc/bluetooth
-rw-r--r-- root     root       101774 2009-01-01 03:00 /etc/build-manifest.xml
-rw-r--r-- root     root         1045 2009-01-01 03:00 /etc/clatd.conf
drwxr-xr-x root     root              2009-01-01 03:00 /etc/dhcpcd
-rw-r--r-- root     root         1362 2009-01-01 03:00 /etc/ethertypes
-rw-r--r-- root     root        18300 2009-01-01 03:00 /etc/event-log-tags
-rw-r--r-- root     root        14309 2009-01-01 03:00 /etc/fallback_fonts.xml

1voto

Guillermo Gomez Puntos 423

ls por defecto lista todo lo suministrado a través de los argumentos. Desde man ls :

-d, --directorio lista los directorios en sí, no su contenido

-l utilizar un formato de listado largo

Así que usted puede simplemente suministrar todo dentro de su directorio targer, y dar la opción -d .

[adb shell] [su -c] ls -dl /etc/*
^ optional, depending on your shell environment

Lo que da

rwxr--r-- 1 root root 1024 Jun 4 22:32 /etc/hosts
...
(and a lone list)

0voto

Firelord Puntos 161

Como el Android está rooteado, puedes usar cualquiera de los siguientes comandos:

\# Replace DIR with the directory's path; prefix **adb shell** wherever appropriate.

su -c 'busybox ls -ld DIR\*'  
su -c 'toybox ls -ld DIR\*'
su -c 'ls -d DIR\*'  # this does not work with long list format available through -l

(Cortesía de la respuesta <a href="https://serverfault.com/a/242229">aquí </a>de An̲̳̳drew por enumerar el argumento <em>-d </em>).

Android Marshmallow viene con Toybox. Para cualquier otra versión de Android, necesitarás configurar BusyBox o Caja de juguetes .

Ejemplo:

IMG

0 votos

Así que supongo que el adb shell ls está limitado. Dang esperaba hacer esto sin busybox. Gracias de todos modos

0voto

user243933 Puntos 11

También puede escribir una función de lista recursiva en sh - esta función se puede copiar y pegar en adb shell sin permisos de root:

function rcrls() { ls -d $1/* | while read f; do echo "$f"; if [ -d "$f" ]; then rcrls "$f"; fi; done }

Entonces, úsalo como:

shell@myphone:/ $ rcrls /

Desgraciadamente, sólo persistirá para el actual adb shell sesión, una vez que se te acabe, tendrás que volver a pegarla; o puedes usarla así:

$ adb shell 'function rcrls() { ls -d $1/* | while read f; do echo "$f"; if [ -d "$f" ]; then rcrls "$f"; fi; done } ; rcrls /' | less

Entonces puedes ver los archivos listados como:

...
//acct/uid/1000
//acct/uid/1000/cgroup.clone_children
//acct/uid/1000/cgroup.event_control
//acct/uid/1000/cgroup.procs
//acct/uid/1000/cpuacct.stat
//acct/uid/1000/cpuacct.usage
...

Para obtener un listado con -l información, es un poco complicado, ya que no hay sed en adb shell Sin embargo, podemos utilizar la expansión de la variable de cadena del shell y el truncamiento para eliminar el nombre base de la lista, y luego podemos añadir la ruta completa:

function rcrls() { 
  ls -d $1/* | while read f; do 
    if [ -d "$f" ]; then 
       fl="$(ls -ld $f/)"; 
       echo "${fl%\ *}" "$f"; 
       rcrls "$f"; 
    else 
       fl="$(ls -l $f)"; 
       echo "${fl%\ *}" "$f"; 
    fi; 
  done 
} ; 
rcrls /

O, como un forro:

adb shell 'function rcrls() { ls -d $1/* | while read f; do if [ -d "$f" ]; then fl="$(ls -ld $f/)"; echo "${fl%\ *}" "$f"; rcrls "$f"; else fl="$(ls -l $f)"; echo "${fl%\ *}" "$f"; fi; done } ; rcrls /' | less

... y entonces se obtiene un listado como:

drwxr-xr-x root     root              2017-11-15 02:29 //acct
-rw-r--r-- root     root            0 2017-11-15 02:29 //acct/cgroup.clone_children
--w--w--w- root     root            0 2017-11-15 02:29 //acct/cgroup.event_control
-rw-r--r-- root     root            0 2017-11-15 02:29 //acct/cgroup.procs
-r--r--r-- root     root            0 2017-11-15 02:29 //acct/cpuacct.stat
...

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X