Jak wyświetlić listę wszystkich plików w telefonie z systemem Android za pomocą powłoki adb?

89

Po prostu próbuję napisać powłokę bash dla mojego telefonu z Androidem.
Kiedy chcę wyświetlić listę wszystkich plików na moim telefonie z Androidem. Okazało się, że terminal powłoki Androida nie obsługuje findpolecenia.
Więc chcę tylko wiedzieć, jaki jest najlepszy sposób na podróżowanie po sdcardplikach?

friddle
źródło
3
Zwróć uwagę, że na zabezpieczonym urządzeniu z Androidem użytkownik powłoki nie ma uprawnień dostępu do wielu plików i listy wielu katalogów. Na emulatorze lub urządzeniu inżynierskim, na którym ADB działa jako root, dostęp do nich staje się możliwy.
Chris Stratton
Wiem to. ale po prostu chcę podróżować z plikiem sdcard.i myślę, że nie może to obejmować uprawnień roota. w każdym razie dzięki!
friddle

Odpowiedzi:

126

Mogę się mylić, ale "find -name __" działa dobrze. (Może to tylko mój telefon). Jeśli chcesz po prostu wyświetlić listę wszystkich plików, możesz spróbować

adb shell ls -R /

Prawdopodobnie potrzebujesz jednak uprawnień roota.

Edycja: jak sugerują inne odpowiedzi, użyj lsw grepnastępujący sposób:

adb shell ls -Ral yourDirectory | grep -i yourString

na przykład.

adb shell ls -Ral / | grep -i myfile

-isłuży do ignorowania wielkości liter. i /jest katalogiem głównym.

pt2121
źródło
2
Większość urządzeń findz Androidem z oficjalną wersją nie ma polecenia, chociaż mogą one mieć niestandardowe ROMS lub inne instalacje busybox.
Chris Stratton
1
mój telefon nie może uzyskać uprawnień roota! bardzo mi przykro z tego powodu. jeśli otrzymam uprawnienia roota. zainstaluję busybox. busybox to bardzo przydatne narzędzia
friddle
Jeśli chcesz tylko sdcard, zamień / w tym poleceniu na punkt montowania sdcard w systemie, a następnie nie, nie powinieneś uruchamiać go jako root.
Chris Stratton
29

Otwórz typ cmd, adb shella następnie naciśnij Enter. Wpisz, lsaby wyświetlić listę plików.

fauzi
źródło
Po wyświetleniu monitu DOS adb shell ls -R > junkwyświetla wszystkie pliki i umieszcza wyniki w pliku, junkktóry możesz następnie edytować za pomocą Notatnika lub cokolwiek innego i zobaczyć więcej niż chcesz, ale także pliki!
DSlomer64
4

wystarczy dodać pełne polecenie:

adb shell ls -R | grep filename

w rzeczywistości jest to dość szybkie wyszukiwanie w systemie Android

renegat
źródło
2
Nie da ci to ścieżki do pliku, wyświetli tylko raport, jeśli istnieje. Aby uzyskać ścieżkę, poleciłbym grep również raportować każdy przeszukiwany katalog ls, w następujący sposób:adb shell ls -laR | grep -E "filename|:$"
volpato
1
lubię używaćls -lrta
John Smith
3

To polecenie pokaże również, czy plik jest ukryty adb shell ls -laR | grep filename

Misha
źródło
1

Niektóre telefony z Androidem zawierają Busybox. Trudno było znaleźć.

Aby sprawdzić, czy w pobliżu był busybox:

ls -lR / | grep busybox

Jeśli wiesz, że to w pobliżu. Potrzebujesz trochę miejsca do odczytu / zapisu. Wypróbuj dysk flash, / sdcard

cd /sdcard
ls -lR / >lsoutput.txt

przesłać na swój komputer. Prześlij plik. Zdobądź jakiś edytor tekstu. Wyszukaj busybox. Zobaczy, w jakim katalogu został znaleziony plik.

busybox find /sdcard -iname 'python*'

aby ułatwić dostęp do busybox, możesz:

cd /sdcard
ln -s /where/ever/busybox/is  busybox
/sdcard/busybox find /sdcard -iname 'python*'

Lub w dowolnym innym miejscu. R

historystamp
źródło