Obtendo caminho absoluto com o comando "ls" -- shell campo com files camp android Relacionado O problema

Getting absolute path with “ls” command


0
vote

problema

português

É possível produzir o caminho do arquivo absoluto ao executar ls -l no android (por exemplo, adb shell ou em um aplicativo de terminal)?

Aqui está a saída que recebo de ls -l /etc/ (eu tenho acesso root):

  E:DropboxDroid Explorersrcmain esourcescomdroidexploreradb>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    

O que eu gostaria de obter é o caminho absoluto, ex:

  E:DropboxDroid Explorersrcmain esourcescomdroidexploreradb>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    
english

Is it possible to output the absolute file path when executing ls -l on Android (e.g. via adb shell or in a terminal app)?

Here is the output I get from ls -l /etc/ (I have root access):

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 

What I would like to get is the absolute path, ex:

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 
     

Lista de respostas

1
 
vote
vote
Melhor resposta
 

ls por lista padrão Tudo fornecido via argumento. De ABCDEFGHIJKLMNABCDEFGHIJKLMN4 :

.

-d, --diretório Listar diretórios em si, não seu conteúdo

-l Use um formato de listagem longo

para que você possa fornecer tudo dentro do seu diretório de targh, e dar a opção -d .

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

que dá

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

ls by default list everything supplied via argument. From man ls:

-d, --directory list directories themselves, not their contents

-l use a long listing format

So you can simly supply everything inside your targer directory, and give the option -d.

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

Which gives

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

Como o Android está enraizado, você pode usar qualquer um dos seguintes comandos:

 # Substitua dir com o caminho do diretório; prefixo  adb shell  onde quer que seja apropriado.  su -c 'busybox ls -ld dir *' su -c 'toybox ls -ld dir *' su -c 'ls-desk *' # isso não funciona com o formato Long List disponível através de -l  

(cortesia da resposta Aqui de Anődrew para listar o argumento -d ) .

Marshmallow android vem com a Toybox. Para qualquer outra versão Android, você precisaria configurar busybox ou toybox .

Exemplo:

img

 

Since the Android is rooted, you can use any of the following commands:

 # 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 

(Courtesy of the answer here from Anxccxb2xccxb3xccxb3drew for listing the argument -d).

Android Marshmallow comes with Toybox. For any other Android version, you would need to setup BusyBox or Toybox.

Example:

IMG

 
 
 
 
0
 
vote

Você também pode escrever uma função de lista recursiva em sh - esta função pode ser colada de cópia em adb shell , sem permissões raiz:

  .tar0   

Então, use-o como:

  .tar1   Infelizmente, ele persistirá apenas para o atual  ABCDEFGHIJKLMNABCDEFGHIJKLMN12  Sessão, uma vez que você estiver fora, você terá que colá-lo novamente; ou você pode usá-lo assim:  
  .tar3   

Então você pode ver os arquivos listados como:

  .tar4   

Para obter uma listagem com .tar5 informação, é um pouco complicado, uma vez que não há trabalho .tar6 em abcdefghijklmnabcdefgijklmn17 ; No entanto, podemos usar a expansão da casca variável de string e truncando para remover o nome de bases da listagem e, em seguida, podemos anexar o caminho completo:

  .tar8   

ou, como um liner:

  .tar9   

... e então você recebe uma listagem como:

  shared0   
 

You can also write a recursive list function in sh - this function can be copy-pasted in adb shell, without root permissions:

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

Then, use it as:

shell@myphone:/ $ rcrls / 

Unfortunately, it will persist only for the current adb shell session, once you're out of it, you'll have to paste it again; or you can use it like this:

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

Then you can see files listed as:

... //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 ... 

To get a listing with -l info, it's a bit tricky, since there's no working sed on adb shell; however, we can use string variable shell expansion and truncating to remove the basename from the listing, and then we can append the full path:

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 / 

Or, as one liner:

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 

... and then you get a listing as:

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 ... 
 
 

Perguntas relacionadas

33  Como posso abrir um arquivo HTML que eu copiei do PC para cartão SD de telefone?  ( How can i open an html file i have copied from pc to sd card of phone ) 
Como posso abrir um arquivo HTML que eu copiei do PC para cartão SD de telefone? Eu tentei abri-lo com o aplicativo padrão, que é o visualizador HTML, mas r...

2  Como remover o arquivo de "arquivos recentes" no Android 10?  ( How to remove file from recent files on android 10 ) 
No aplicativo Arquivos Android 10 (Pixel 2 XL), há uma categoria "recente". Por razões de privacidade, eu queria excluir um arquivo nesta categoria. Tanto qua...

3  Como compartilhar arquivos através do Bluetooth?  ( How to share files through bluetooth ) 
A única maneira que encontrei para fazer isso é instalando um software de 3RD File Explorer. Não há um aplicativo padrão que faz isso? Pelo menos para arquivo...

15  Enviar rapidamente o arquivo do telefone para o PC via Internet?  ( Quickly send file from phone to pc via internet ) 
Existe um serviço / aplicativo que fornece esta funcionalidade? Eu imagino a inversão de gota incrível . ...

1  Quais formatos de mídia são suportados no Android?  ( What media formats are supported in android ) 
Eu sou novo para Android, e estou aprendendo. Por exemplo, a maioria dos meus arquivos de música antigos eram arquivos FLV e SWF, que meu telefone e tablet nã...

0  Arquivos estranhos no diretório raiz  ( Weird dat files in root directory ) 
Eu tenho um Samsung Galaxy S7 com o mais recente android oficial para esse telefone instalado. Existem alguns arquivos cujos nomes me preocupam no meu diretór...

3  Tipo de arquivo desconhecido contendo um vírus  ( Unknown file type containing a virus ) 
Vou tentar manter a história tão curta quanto possível, então você pode ter uma visão mais clara do que é a minha preocupação. Enquanto, eu estava navegando n...

14  Como posso recuperar os arquivos em Lost.dir no meu cartão SD e quais são eles?  ( How can i recover the files in lost dir on my sd card and what are they ) 
Eu sempre tive uma pasta Lost.dir no meu cartão SD externo, que até agora está vazio. Hoje meu telefone reclamou que meu cartão SD foi danificado e não o mont...

2  O que é este arquivo ".pardeal`?  ( What is this appodeal file ) 
Eu descobri recentemente um novo arquivo no meu telefone, chamado .appodeal na base do Internal shared storage pasta. Parece ser um arquivo de texto com...

1  App padrão para o tipo de arquivo  ( Default app for file type ) 
Eu tenho um Nokia 6.1 com Android 10 (Android One). Eu estava tentando baixar minha declaração de conta no aplicativo Revolut. Isso me dá uma opção para sel...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.