Làm thế nào để liệt kê tất cả các tệp trong điện thoại Android bằng cách sử dụng adb shell?


88

Tôi chỉ cố gắng viết một bash shell cho Điện thoại Android của mình.
Khi tôi muốn liệt kê tất cả các tệp trong Điện thoại Android của mình. Tôi thấy rằng thiết bị đầu cuối vỏ Android không hỗ trợ findlệnh.
Vì vậy, tôi chỉ muốn biết cách tốt nhất để di chuyển các sdcardtập tin?


3
Lưu ý rằng trên thiết bị Android được bảo mật, người dùng shell thiếu quyền truy cập nhiều tệp và liệt kê nhiều thư mục. Trên một trình giả lập hoặc thiết bị kỹ thuật mà ADB chạy dưới quyền root, thì việc truy cập vào những thiết bị này trở nên khả thi.
Chris Stratton

tôi biết điều đó. nhưng tôi chỉ muốn di chuyển tệp của sdcard. Tôi nghĩ rằng nó không thể liên quan đến quyền root. dù sao cũng cảm ơn!
friddle

Câu trả lời:


125

Tôi có thể sai nhưng "find -name __" phù hợp với tôi. (Có thể đó chỉ là điện thoại của tôi.) Nếu bạn chỉ muốn liệt kê tất cả các tệp, bạn có thể thử

adb shell ls -R /

Bạn có thể cần quyền root.

Chỉnh sửa: Như câu trả lời khác đề nghị, sử dụng lsvới grepnhư thế này:

adb shell ls -Ral yourDirectory | grep -i yourString

ví dụ.

adb shell ls -Ral / | grep -i myfile

-idành cho trường hợp bỏ qua. /là thư mục gốc.


2
Hầu hết các thiết bị Android phát hành chính thức không có findlệnh, mặc dù có thể có những thiết bị có ROMS tùy chỉnh hoặc cài đặt bận rộn khác.
Chris Stratton

1
điện thoại của tôi không thể có quyền root! Tôi rất xin lỗi vì điều đó. nếu tôi nhận được quyền root. Tôi sẽ cài đặt busybox. busybox là công cụ rất hữu ích
friddle

Nếu bạn chỉ muốn sdcard, hãy thay thế / trong lệnh này bằng điểm gắn kết của sdcard trên hệ thống của bạn và sau đó không, bạn không cần phải chạy nó dưới dạng root.
Chris Stratton

29

Mở loại cmd adb shellrồi nhấn enter. Nhập lsđể xem danh sách tệp.


Tại lời nhắc DOS, adb shell ls -R > junkliệt kê tất cả các tệp và đưa kết quả vào tệp junkmà sau đó bạn có thể chỉnh sửa qua Notepad hoặc bất cứ thứ gì và xem nhiều hơn những gì bạn muốn, nhưng các tệp của bạn cũng vậy!
DSlomer 64

4

chỉ để thêm toàn bộ lệnh:

adb shell ls -R | grep filename

đây thực sự là một tra cứu khá nhanh trên Android


2
Điều này sẽ không cung cấp cho bạn đường dẫn tệp, nó sẽ chỉ báo cáo nếu nó tồn tại. Để có được con đường tôi sẽ hướng dẫn grep cũng phải báo cáo tất cả các thư mục thu thập thông tin ls, như thế này:adb shell ls -laR | grep -E "filename|:$"
VOLPATO

1
tôi thích sử dụngls -lrta
john Smith

3

Lệnh này cũng sẽ hiển thị nếu tệp bị ẩn adb shell ls -laR | grep filename


1

Một số điện thoại Android có Busybox. Rất khó để tìm thấy.

Để xem có bận rộn không:

ls -lR / | grep busybox

Nếu bạn biết nó xung quanh. Bạn cần một số không gian đọc / ghi. Hãy thử bạn ổ đĩa flash, / sdcard

cd /sdcard
ls -lR / >lsoutput.txt

tải lên máy tính của bạn. Tải tệp lên. Nhận một số trình soạn thảo văn bản. Tìm kiếm busybox. Sẽ xem tệp được tìm thấy trong thư mục nào.

busybox find /sdcard -iname 'python*'

để giúp truy cập vào busybox dễ dàng hơn, bạn có thể:

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

Hoặc bất kỳ nơi nào khác mà bạn muốn. R

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.