วิธีแสดงรายการไฟล์ทั้งหมดในโทรศัพท์ Android โดยใช้ adb shell?


91

ฉันแค่พยายามเขียน bash shell สำหรับโทรศัพท์ Android ของฉัน
เมื่อฉันต้องการแสดงรายการไฟล์ทั้งหมดในโทรศัพท์ Android ของฉัน ฉันพบว่าเทอร์มินัลเชลล์ของ Android ไม่รองรับfindคำสั่ง
เลยอยากทราบว่าวิธีไหนดีที่สุดในการเดินทางsdcardไฟล์?


3
โปรดทราบว่าบนอุปกรณ์ Android ที่มีการรักษาความปลอดภัยผู้ใช้เชลล์ขาดสิทธิ์ในการเข้าถึงไฟล์จำนวนมากและแสดงรายการไดเรกทอรีจำนวนมาก บนอีมูเลเตอร์หรืออุปกรณ์วิศวกรรมที่ ADB ทำงานเป็นรูทการเข้าถึงสิ่งเหล่านี้จะเป็นไปได้
Chris Stratton

ฉันรู้ แต่ฉันแค่ต้องการเดินทางไฟล์ของ sdcard ฉันคิดว่ามันไม่เกี่ยวข้องกับสิทธิ์รูท ยังไงก็ขอบคุณ!
friddle

คำตอบ:


129

ฉันอาจจะคิดผิด แต่ "find -name __" ทำงานได้ดีสำหรับฉัน (อาจจะเป็นแค่โทรศัพท์ของฉัน) หากคุณต้องการแสดงรายการไฟล์ทั้งหมดคุณสามารถลองได้

adb shell ls -R /

คุณอาจต้องได้รับอนุญาตจาก root

แก้ไข: ในฐานะที่เป็นคำตอบอื่น ๆ แนะนำให้ใช้lsด้วยgrepเช่นนี้

adb shell ls -Ral yourDirectory | grep -i yourString

เช่น.

adb shell ls -Ral / | grep -i myfile

-iมีไว้สำหรับละเว้นกรณี และ/เป็นไดเรกทอรีราก


2
อุปกรณ์ Android ที่วางจำหน่ายอย่างเป็นทางการส่วนใหญ่ไม่มีfindคำสั่งแม้ว่าอุปกรณ์ที่มี ROMS แบบกำหนดเองหรือการติดตั้ง busybox อื่น ๆ อาจ
Chris Stratton

1
โทรศัพท์ของฉันไม่สามารถรับสิทธิ์การรูทได้ฉันเสียใจมากสำหรับสิ่งนั้นถ้าฉันได้รับ premission รูทฉันจะติดตั้ง busybox busybox เป็นเครื่องมือที่มีประโยชน์มาก
friddle

หากคุณต้องการเฉพาะ sdcard ให้แทนที่ / ในคำสั่งนี้ด้วยจุดเชื่อมต่อของ sdcard บนระบบของคุณจากนั้นไม่คุณไม่ควรเรียกใช้เป็นรูท
Chris Stratton

หากโทรศัพท์ของคุณไม่ได้รูทคุณสามารถใช้adb shell ls /storageหรือadb shell ls -R --color=always /storageเพื่อแสดงรายการจากไดเร็กทอรีที่อ่านได้
mchid

29

เปิดประเภท cmd adb shellจากนั้นกด Enter พิมพ์lsเพื่อดูรายการไฟล์


ที่พรอมต์ DOS adb shell ls -R > junkแสดงรายการไฟล์ทั้งหมดและใส่ผลลัพธ์ลงในไฟล์junkซึ่งคุณสามารถแก้ไขผ่าน Notepad หรืออะไรก็ได้และดูมากกว่าที่คุณต้องการ แต่ไฟล์ของคุณก็เช่นกัน!
DSlomer64

4

เพียงแค่เพิ่มคำสั่งเต็ม:

adb shell ls -R | grep filename

นี่เป็นการค้นหาที่รวดเร็วใน Android


2
สิ่งนี้จะไม่ให้เส้นทางไฟล์แก่คุณ แต่จะรายงานหากมีอยู่เท่านั้น ในการรับเส้นทางฉันจะสั่งให้ grep รายงานทุกไดเรกทอรีที่รวบรวมข้อมูลด้วยlsเช่นนี้adb shell ls -laR | grep -E "filename|:$"
volpato

1
ฉันชอบใช้ls -lrta
john Smith


2

โทรศัพท์ Android บางรุ่นมี Busybox เป็นเรื่องยากที่จะหา

หากต้องการดูว่า busybox อยู่รอบ ๆ หรือไม่:

ls -lR / | grep busybox

ถ้าคุณรู้ว่ามันอยู่ใกล้ ๆ คุณต้องการพื้นที่อ่าน / เขียน ลองใช้แฟลชไดรฟ์ / sdcard

cd /sdcard
ls -lR / >lsoutput.txt

อัปโหลดไปยังคอมพิวเตอร์ของคุณ อัปโหลดไฟล์ รับโปรแกรมแก้ไขข้อความ ค้นหา busybox จะเห็นไดเร็กทอรีที่พบไฟล์.

busybox find /sdcard -iname 'python*'

เพื่อให้ busybox เข้าถึงได้ง่ายขึ้นคุณสามารถ:

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

หรือสถานที่อื่น ๆ ที่คุณต้องการ ร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.