ลินุกซ์พาร์ทิชันค้นหา / ค้นหารูทเท่านั้น?


17

พูดว่าฉันต้องทำ:

find / -name somefile.txt

และพูดว่าพาร์ทิชันราก/ติดตั้งอยู่บน/dev/sda5; อย่างไรก็ตามสมมติว่าฉันมีพาร์ทิชัน 250GB ( /dev/sda6, /dev/sda7) ติดตั้งอยู่/media- และอีกตำแหน่งที่ฉันจำไม่ได้ในปัจจุบัน /dev/sda5กล่าวว่ายังว่าฉันรู้ว่าไฟล์ฉันกำลังมองหาที่อยู่บน

เห็นได้ชัดว่าคำสั่งดังกล่าวจะลงมา/mediaและไดเรกทอรีอื่น ๆ ซึ่งเป็นตัวแทนของพาร์ทิชันใหญ่เสียเวลาในการค้นหาไฟล์ในสถานที่ที่ไม่ถูกต้อง

มีวิธีที่จะแนะนำให้ค้นหา (หรือคำสั่งอื่น ๆ ) เพื่อค้นหาเฉพาะ /บน/dev/sda5และไม่ลงไปยังไดเรกทอรีหากพวกเขาอยู่ในพาร์ทิชันที่แตกต่างกัน?

คำตอบ:


30

ใช้-xdevอาร์กิวเมนต์เพื่อค้นหา

-xdev อย่าลงไดเรกทอรีในระบบไฟล์อื่น ๆ


1
ขอบคุณมาก - สำหรับการอ้างอิงเท่านั้นไวยากรณ์จะเป็น: <pre> find / -xdev -name somefile.txt </pre> </pre>
sdaau

1
สำหรับผู้ใช้ mac: ค้นหา -x / -name somefile.txt
CodeReaper

1
การค้นหา manpage เพื่อหา--one-file-systema la duก็ทำได้ไม่ดีเช่นกัน อย่างน้อยพวกเขาทั้งคู่เริ่มด้วย-xฉันคิดว่า และมันก็หมายถึง "อุปกรณ์ไขว้" ฉันคิดว่า
Sridhar Sarnobat

2

POSIX มาตรฐานกำหนด-xdev “หลัก“:

มันจะทำให้ค้นหาไม่ให้ดำเนินการต่อจากไดเรกทอรีที่ผ่านมาที่มี ID อุปกรณ์ต่างกัน

สิ่งนี้ถูกนำไปใช้ใน GNU's find(เช่นfindutils ; docs )
GNU findยังอนุญาตให้คุณใช้-mountเป็น” ชื่อสำรอง-xdevเพื่อความเข้ากันได้กับการค้นหารุ่นอื่น ๆ

บนระบบ BSD และ macOS มีตัวเลือก-xแทน พวกเขา (imho สับสน) เรียกว่า-xdevเป็น " เลิก " อย่างไรก็ตามคุณสามารถใช้-mountแทนได้ [manpages ของFreeBSDและmacOS ]

เครื่องมืออื่น ๆ เพียงแค่ FYI

หากคุณกำลังใช้ripgrep ( rg) เช่นrg --filesคุณสามารถใช้--one-file-systemตัวเลือกซึ่งไม่เหมือนกันเช่นหาของ-xdevตัวเลือก

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