ฉันต้องการรันสคริปต์ที่เลือกเส้นทางไดเรกทอรีแบบสุ่ม:
find / -type d | shuf -n1
น่าเสียดายที่ฉันได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับข้อห้ามในการเข้าสู่บางไดเรกทอรี
ฉันจะแยกไดเรกทอรีออกจากการค้นหาด้วยการค้นหาได้อย่างไร
ฉันต้องการรันสคริปต์ที่เลือกเส้นทางไดเรกทอรีแบบสุ่ม:
find / -type d | shuf -n1
น่าเสียดายที่ฉันได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับข้อห้ามในการเข้าสู่บางไดเรกทอรี
ฉันจะแยกไดเรกทอรีออกจากการค้นหาด้วยการค้นหาได้อย่างไร
คำตอบ:
ในการยกเว้นเส้นทางเฉพาะบน Linux:
find / -path /sys -prune -o -path /proc -prune -o -type d
อีกวิธีหนึ่งคือการบอกfind
ไม่ให้เรียกเก็บเงินภายใต้ระบบไฟล์ที่แตกต่างกัน
find / -xdev -type d
นอกจากนี้คุณยังสามารถใช้ค้นหาเพื่อสืบค้นฐานข้อมูลชื่อไฟล์ (โดยปกติจะอัปเดตทุกคืนคุณสามารถอัปเดตด้วยตนเองโดยใช้updatedb
) แทนระบบสด
locate '*' | shuf -n 1
find / -xdev -type d 2>/dev/null
stderr:
find / \( -path /sys -o -path /proc \) -prune -o -type d
จะมีประโยชน์ถ้าคุณต้องการแยก dirs ที่ชอบ/dev
หรือ/tmp
อื่น ๆ อีกมากมาย
ด้วย GNU คุณจะพบว่าคุณสามารถใช้ตัวเลือก regex เช่นนี้
find / -regextype posix-extended -regex "/(sys|srv|proc)" -prune -o -type d