ค้นหาฮาร์ดลิงก์ทั้งหมดของไฟล์โดยไม่ต้องข้ามระบบไฟล์


9

ฉันเห็นในหน้านี้ว่า inodes มีตัวนับลิงก์เพื่อทราบจำนวนไฟล์ (อ่าน: "รายการไดเรกทอรี") ชี้ไปที่ inode นี้ มีวิธีที่จะทราบว่าไดเรกทอรีใดมีรายการดังกล่าวโดยไม่ต้องข้ามทั้งระบบไฟล์? ข้อมูลนี้ถูกเก็บไว้ที่ไหน?

struct inode {
    kdev_t                       i_dev;
    unsigned long                i_ino;
    umode_t                      i_mode;
    nlink_t                      i_nlink;
    uid_t                        i_uid;
    gid_t                        i_gid;
    …
};

วิธีที่เร็วที่สุด - มีการสำรวจเส้นทางเท่านั้น - find -inum <n> -samefile pathอาจจะมี
ott--

2
@ ott-- findจะใช้กับอย่างใดอย่างหนึ่ง -inum หรือ -samefileแต่ไม่ได้มีทั้ง
Hauke ​​Laging

@HaukeLaging คุณพูดถูกเพียงคนเดียว
ott--

คำตอบ:


10

ไม่รายการสารบบชี้ไปที่ไอโหนดเป็นลิงค์ทางเดียว inodes ไม่ได้ชี้กลับไปที่รายการไดเรกทอรี

เพื่อค้นหารายการทั้งหมดของรายการไดเรกทอรีที่ชี้ไปที่ inode คุณจะต้องสำรวจระบบไฟล์จนกว่าคุณจะพบรายการไดเรกทอรีเพียงพอที่จะบัญชีสำหรับการนับลิงค์ของ inode

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