คำสั่ง adb เพื่อค้นหาระบบไฟล์


11

มีคำสั่ง adb คล้ายกับ "ค้นหา" หรือ "grep" ที่จะช่วยฉันค้นหาไฟล์บนอุปกรณ์ Android ของฉันหรือไม่?

ฉันอยากรู้เกี่ยวกับ adb เฉพาะไม่ใช่แอปค้นหา

แก้ไข: แนะนำให้ "find" แต่บนอุปกรณ์ ICS ของฉัน:

hydrangea@turnsole:~$ adb shell find / -name *maps*
/system/bin/sh: find: not found

บนอุปกรณ์ Gingerbread ของฉันมันใช้งานได้ (ยกเว้นฉันไม่ได้รูทอุปกรณ์นั้นจึงไม่ได้รับอนุญาต)

hydrangea@turnsole:~$ adb shell find / -name *maps*
find: permission denied

Busybox จะให้บริการgrepแต่ไม่ใช่locate(AFAIK)
eldarerathis

1
find มีอยู่ในอุปกรณ์สต็อกที่ฉันเชื่อเช่นกัน
Ryan Conrad

2
อย่างน้อยใน ICS จะบอกฉันว่า "find: not found" :(
ไฮเดรนเยีย

คำตอบ:


8

คำสั่ง find ทำงานได้ดีในเชลล์ adb find /path -name file_nameไวยากรณ์ สำหรับการค้นหาพื้นที่อ่านอย่างเดียวคุณจะต้องรูท หากคำสั่ง find ไม่พร้อมใช้งานบนอุปกรณ์ของคุณโดยเฉพาะคุณอาจต้องติดตั้ง BusyBox (ค้นหา Market)

ตัวอย่างเช่น
adb shell find / -name *maps*
จะค้นหาไฟล์ทั้งหมดที่มีคำว่า "แผนที่" ในระบบไฟล์ทั้งหมด


4
หากคำสั่งนี้ส่งเสียงคุณด้วยการ/somedir/: Permission deniedผนวก2>/dev/nullคำสั่งเพื่อปิดข้อความข้อผิดพลาด
onik

1
find-> /system/bin/sh: find: not found- ออกจากโชค ฉันจะติดตั้งfindลงในอุปกรณ์ที่ถูกบอร์กซึ่งผู้ผลิตตัดสินใจที่จะไม่รวมfindไว้ในเฟิร์มแวร์ได้อย่างไร?
ชื่อที่ปรากฏ

3

find ยูทิลิตี้มาพร้อมกับ BusyBox หรือส่วนที่ 3 อื่น ๆ

หากต้องการใช้ความสามารถดั้งเดิมให้ลอง ( ls -Rบน Android, grepบนพีซี):

adb shell ls -lR / | grep 'REGEX'

2

"find" เป็นแอปพลิเคชั่นบรรทัดคำสั่งซึ่งอาจติดตั้งตามปกติดังนี้: 1. ระบบปฏิบัติการแบบไบนารี่ (เครื่องเดสก์ท็อปส่วนใหญ่) หรือ 2. สิ่งเล็ก ๆ ที่ทำสิ่งต่าง ๆ ซึ่งหนึ่งในนั้นคือ "ค้นหา" หรือ 3 อาจไม่พร้อมใช้งานเป็นโทรศัพท์ ผู้ผลิตไม่ต้องการให้ผู้ใช้ควบคุมโทรศัพท์มากเกินไป

เป็นไปได้ว่าคุณมีอุปกรณ์ ICS หนึ่งแบรนด์ (เช่นซัมซุง) - ผู้ผลิตต้องการควบคุมอุปกรณ์มากกว่าที่เจ้าของทำ รับรูทที่นั่นจากนั้นติดตั้ง busybox อุปกรณ์น่าจะเป็นสิ่งที่เรียกว่า "/ system / bin / toolbox" - คุณสามารถเรียกใช้ "/ system / bin / toolbox find" แต่มีแนวโน้มที่จะส่งคืน "ไม่มีเครื่องมือดังกล่าว" เนื่องจากผู้ผลิตตั้งใจลบออกจากอุปกรณ์

อย่างไรก็ตามเป็นไปได้ว่าอุปกรณ์ของคุณมีคุณสมบัติภายในกล่องเครื่องมือที่รวมอยู่ - แต่ไม่ใช่ "symlinked" ... หาก "/ system / bin / toolbox find" จะเรียกใช้คุณสมบัติจากนั้นคุณอาจใช้ "ln / system / bin / find คำสั่งกล่องเครื่องมือ "(ฉันอาจทำตามคำสั่งของพารามิเตอร์) ก่อนดำเนินการ "ln ... " คุณต้องประกอบอุปกรณ์ใหม่ในโหมดอ่าน - เขียน (โดยใช้ "adb root" หรือ "su; mount -o remount, rw / system"

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