เป็นคำถามที่เก่ามากฉันรู้ แต่ค้นหาวิธีแก้ปัญหาที่ฉันอาจพบคำตอบที่ดีกว่า
ปัญหาหลักของการใช้ "find" คือมันขึ้นอยู่กับชุดของแอ็ตทริบิวต์ที่สามารถเรียกใช้งานได้แม้ว่าแอ็ตทริบิวต์นี้จะถูกตั้งค่าสำหรับไฟล์ที่ไม่สามารถเรียกใช้งานได้
MacOS มาพร้อมกับเครื่องมือบรรทัดคำสั่งเล็ก ๆ " file
" ซึ่งจะแสดงข้อมูลไฟล์ตัวอย่างเช่น:
$> file *
Distribution: directory
SomeFile.icns: Mac OS X icon, 3272878 bytes, "ic09" type
MyPicture.png: PNG image data, 1024 x 1024, 8-bit/color RGBA, non-interlaced
NSHelpers.pas: Algol 68 source text, ASCII text
myProgram: Mach-O 64-bit executable x86_64
อย่างที่คุณเห็น 'MyProgram' เป็นไฟล์ที่เรียกใช้งานได้และระบุไว้เป็นอย่างดี เนื่องจาก executables 32 บิตแบบเก่าจะมีวลี "executable" ในนี้เช่นกันดังนั้นรายการต่อไปนี้ควรแสดงรายการ executable จริงทั้งหมด (ไบนารี):
file * | grep "executable"
หวังว่านี่จะเป็นประโยชน์กับใครบางคนที่กำลังมองหาคำตอบสำหรับคำถามเดียวกันเช่นกัน
หมายเหตุ: file
ดูเหมือนจะไม่มีฟังก์ชั่นในการเรียกคืนผ่านไดเรกทอรีย่อย
-L
แทน-or -type l
การทำให้เกิดการstat
โทรใด ๆfind
เพื่อคืนค่าสถิติของไฟล์ที่ลิงก์ไปไม่ใช่การเชื่อมโยงเอง