หากฉันพยายามเมานต์โฟลเดอร์ที่มีไฟล์อยู่แล้ว linux จะให้ข้อความแสดงข้อผิดพลาดหรือไม่และแสดงทั้งระบบไฟล์ที่เมาท์และไฟล์ที่อยู่ในโฟลเดอร์แล้วหรือไม่?
หากฉันพยายามเมานต์โฟลเดอร์ที่มีไฟล์อยู่แล้ว linux จะให้ข้อความแสดงข้อผิดพลาดหรือไม่และแสดงทั้งระบบไฟล์ที่เมาท์และไฟล์ที่อยู่ในโฟลเดอร์แล้วหรือไม่?
คำตอบ:
มันจะถูกเมาต์และไฟล์จะหายไปกลับมาเมื่อโฟลเดอร์ถูกต่อเชื่อม
เมื่อคุณเมานต์ระบบไฟล์ในไดเรกทอรี/mount-pointคุณจะไม่สามารถเข้าถึงไฟล์/mount-pointได้โดยตรง ยังคงมีอยู่ แต่/mount-pointตอนนี้อ้างถึงรูทของระบบไฟล์ที่เมาท์ไม่ใช่ไดเร็กทอรีที่ทำหน้าที่เป็นจุดต่อดังนั้นเนื้อหาของไดเรกทอรีนี้ไม่สามารถเข้าถึงได้อย่างน้อยก็ด้วยวิธีนี้ ตัวอย่างเช่น:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
มีวิธีรับมุมมองแบบผสานของระบบไฟล์ที่เมาท์และข้อมูลที่มีอยู่แล้ว แต่คุณต้องการเลเยอร์เพิ่มเติมที่เรียกว่าระบบไฟล์แบบร่วม
ภายใต้ Linux มีวิธีดูไฟล์ที่ซ่อนอยู่ คุณสามารถใช้mount --bindเพื่อรับมุมมองอื่นของระบบไฟล์ที่จุดเชื่อมต่ออยู่ ตัวอย่างเช่น
mount --bind / /other-root-view
/other-root-viewคุณจะเห็นไฟล์ทั้งหมดในระบบแฟ้มรากภายใต้
# cat /other-root-view/etc/hostname 
darkstar
โดยเฉพาะอย่างยิ่ง/mount-pointตอนนี้จะสามารถเข้าถึงได้ในฐานะ/other-root-view/mount-pointและเนื่องจาก/other-root-view/mount-pointไม่ใช่จุดเชื่อมต่อคุณจึงสามารถดูเนื้อหาได้ที่:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
/mount-point/1/แล้วจากนั้นติดตั้งระบบไฟล์อื่น/mount-point/ฉันจะยังสามารถเข้าถึงได้/mount-point/1/หรือไม่
                    mkdir /r; mount --bind / /r; du -sh /r/*การแก้ไข: ขอบคุณ
                    du -x(เทียบเท่าdu --one-file-system) จะทำเช่นนั้นโดยไม่จำเป็นต้องมี--bindshenanigans