คำถามติดแท็ก hard-link

ฮาร์ดลิงก์คือรายการระบบไฟล์ที่เชื่อมโยงชื่อกับไฟล์อื่นบนระบบไฟล์

4
สามารถเรียกไฟล์จาก inode ได้หรือไม่?
ฉันรันคำสั่งต่อไปนี้ตามลำดับที่ระบุ: $ln a b $ls -i a b 523669 a 523669 b $rm -f a $ls -i b 523669 b ฉันได้ข้อสรุปจากการทดสอบนี้ว่าคำสั่งrmจริงลบเฉพาะชื่อไฟล์ ( aในการทดสอบนี้) แทนไฟล์เนื่องจาก inode ยังคงอยู่และสามารถดึงผ่านชื่อไฟล์อื่น ( b) คำถามของฉันคือถ้าไฟล์ยากที่จะเชื่อมโยงกับชื่อไฟล์เดียวเมื่อrmถูกดำเนินการกับไฟล์เป็นไฟล์จริง (เช่น inode) ลบออกอย่างสมบูรณ์? และถ้าไม่สามารถเรียกใช้ไฟล์ inode ได้โดยไม่มีชื่อไฟล์และผ่าน inode เท่านั้น
27 rm  hard-link  inode 

3
มีข้อ จำกัด ของฮาร์ดลิงก์หนึ่งไฟล์หรือไม่
มีการ จำกัด จำนวนฮาร์ดลิงก์สำหรับหนึ่งไฟล์หรือไม่ มีการระบุไว้ที่ไหนหรือไม่? ขีด จำกัด ที่ปลอดภัยสำหรับ Linux คืออะไร แล้วระบบ POSIX อื่น ๆ ล่ะ?

1
dpkg แทนที่ไฟล์บนระบบไฟล์ FAT
เมื่อคุณอัพเกรดหรือติดตั้งแพคเกจใหม่dpkg(และท้ายที่สุดสิ่งที่ใช้มันเช่น apt-get ฯลฯ ) มันจะสำรองไฟล์ที่มีอยู่โดยการสร้างฮาร์ดลิงก์ไปยังไฟล์ก่อนที่จะแทนที่มัน ด้วยวิธีนี้หากการคลายแพ็กล้มเหลวจะสามารถนำไฟล์ที่มีอยู่กลับมาได้อย่างง่ายดาย เยี่ยมมากเพราะมันช่วยปกป้องระบบปฏิบัติการจากสิ่งที่เกิดขึ้น Bad Things ™ ยกเว้น ... มันจะทำงานเฉพาะถ้าระบบแฟ้มของคุณสนับสนุนการเชื่อมโยงอย่างหนัก ระบบไฟล์ทั้งหมดไม่ได้ทำเช่นระบบไฟล์ FAT ฉันกำลังทำงานกับการแจกจ่าย Debian สำหรับแพลตฟอร์ม ARM ที่ฝังตัวเฉพาะและสภาพแวดล้อมการบูตต้องการไฟล์บางอย่าง (เคอร์เนลที่รวมอยู่) อยู่บนระบบไฟล์ FAT ดังนั้นรหัสการบูตสามารถค้นหาและโหลดได้ เมื่อคุณไปอัพเกรดแพ็คเกจเคอร์เนล (หรือแพ็คเกจอื่น ๆ ที่มีไฟล์ในพาร์ติชัน FAT นั้น) การติดตั้งจะล้มเหลวด้วย: dpkg: error processing archive linux-image3.18.11+_3.18.11.2.armadillian_armhf.deb (--install): unable to make backup link of `./boot/vmlinuz-3.18.11+' before installing new version: Operation not …
22 dpkg  hard-link  fat 

5
เหตุใดฮาร์ดลิงก์จึงใช้ได้ในระบบไฟล์เดียวกันเท่านั้น
ฉันกำลังอ่านบทนำนี้ถึงบรรทัดคำสั่งโดย Mark Bates ในบทแรกเขากล่าวว่าฮาร์ดลิงก์ไม่สามารถขยายระบบไฟล์ได้ สิ่งสำคัญที่ควรทราบเกี่ยวกับฮาร์ดลิงก์คือมันใช้งานได้กับระบบไฟล์ปัจจุบันเท่านั้น คุณไม่สามารถสร้างฮาร์ดลิงก์ไปยังไฟล์บนระบบไฟล์อื่น ในการทำเช่นนั้นคุณต้องใช้ลิงก์สัญลักษณ์ส่วน 1.4.3 ฉันรู้จักระบบไฟล์เดียว หนึ่งเริ่มต้นจาก root ( /) คำสั่งนี้ฮาร์ดลิงก์ไม่สามารถครอบคลุมระบบไฟล์ได้ไม่สมเหตุสมผลสำหรับฉัน บทความ Wikipedia เกี่ยวกับระบบไฟล์ Unixนั้นไม่เป็นประโยชน์เช่นกัน

4
อะไรคือความแตกต่างระหว่างฮาร์ดลิงก์และไฟล์ที่คัดลอก?
ความเข้าใจของฉันคือการเชื่อมโยงอย่างหนักรวมถึงสำเนาของไฟล์ต้นฉบับและฉันสามารถลบไฟล์ที่เชื่อมโยงอย่างหนักในไดเรกทอรีเดียวและมันจะยังคงอยู่ในไดเรกทอรีอื่น หากเป็นเช่นนั้นทำไมฉันจึงต้องการใช้ฮาร์ดลิงก์ทั้งหมด ทำไมไม่มีแค่สองไฟล์แยกกันล่ะ?
22 files  rhel  hard-link 

2
ยกเลิกการเชื่อมโยงฮาร์ดลิงก์
ในหน้าคู่มือการใช้งานtarคำสั่งตัวเลือกสำหรับการเชื่อมโยงฮาร์ดต่อไปนี้จะปรากฏ -h, --dereference follow symlinks; archive and dump the files they point to --hard-dereference follow hard links; archive and dump the files they refer to จะtarรู้ได้อย่างไรว่าไฟล์เป็นฮาร์ดลิงก์ มันติดตามได้อย่างไร? ถ้าฉันไม่เลือกตัวเลือกนี้ มันไม่ยากลำบากอย่างไร
22 tar  hard-link 

2
ฮาร์ดลิงก์นับเป็นไฟล์ปกติหรือไม่
ฉันสงสัยว่ามีวิธีในการลงทะเบียนหรือไม่ แต่เนื่องจากเครื่องมือค้นหาที่ทันสมัยส่วนใหญ่ทำงานได้ไม่ดีกับวลีที่มีความยาวประมาณ 5 คำฉันจึงต้องการความช่วยเหลือในส่วนนี้ ฉันสงสัยสิ่งนี้เพราะฉันกำลังสร้างสคริปต์ทุบตีที่ต้องลงทะเบียนไฟล์เป็นบางประเภทและตัดสินใจตามนั้น เทคนิคนี้ไม่สำคัญกับโครงการของฉัน แต่ฉันอยากรู้ นอกจากนี้หากไฟล์เหล่านั้นถูกพิจารณาว่าเป็นไฟล์ปกติก็มีวิธีตรวจสอบว่าไฟล์เหล่านี้เชื่อมโยงกันอย่างหนักหรือไม่โดยไม่ต้องแยกวิเคราะห์ls -i? และมีวิธีการตรวจสอบว่าไฟล์โดยพลการบางไฟล์, X, เชื่อมโยงกับไฟล์โดยพลการอื่น ๆ , Y, โดยไม่ใช้find -iคำสั่งหรือไม่?

2
วิธีสร้างฮาร์ดลิงก์ไปยัง inode (ext4)
ถ้าฉันรู้ว่าโหนดดัชนี (inode) ของไฟล์ แต่ฉันไม่รู้เส้นทางของมัน (หรือเส้นทางใด ๆ ) มันเป็นไปได้ไหมที่จะสร้างฮาร์ดลิงก์ไปยัง inode นั้นโดยตรง ฉันพบไฟล์ที่ใช้sudo find / -inum 123546แล้วสร้างฮาร์ดลิงก์ แต่มันจะช้าเกินไปสำหรับแอปพลิเคชันของฉัน NB ฉันใช้ระบบไฟล์ ext4
17 inode  hard-link 

2
การสร้างลิงค์ยาก - การอนุญาต?
การอนุญาตใดบ้างที่ส่งผลต่อการสร้างฮาร์ดลิงก์ การเป็นเจ้าของไฟล์มีความสำคัญหรือไม่? สมมติว่าผู้ใช้aliceต้องการที่จะสร้างยากเชื่อมโยงไปยังแฟ้มในไดเรกทอรีtarget.txttarget-dir ซึ่งสิทธิ์ไม่aliceต้องทั้งในtarget.txtและtarget-dir? หากtarget.txtเป็นของผู้ใช้billและtarget-dirเป็นของผู้ใช้chadมันจะเปลี่ยนแปลงอะไรหรือไม่? ฉันพยายามจำลองสถานการณ์นี้โดยสร้างโครงสร้างโฟลเดอร์ / ไฟล์ต่อไปนี้ในext4ระบบไฟล์: #> ls -lh . * .: drwxr-xr-x 2 bill bill 60 Oct 1 11:29 source-dir drwxrwxrwx 2 chad chad 60 Oct 1 11:40 target-dir source-dir: -r--r--r-- 1 bill bill 0 Oct 1 11:29 target.txt target-dir: -rw-rw-r-- 1 alice alice 0 Oct 1 …

5
วิธีรับขนาดโฟลเดอร์โดยไม่สนใจการเชื่อมโยงอย่างหนัก
ฉันใช้ rsnapshot สำหรับการสำรองข้อมูลซึ่งสร้างชุดของโฟลเดอร์ที่มีไฟล์ชื่อเดียวกัน ไฟล์บางไฟล์เชื่อมโยงกันอย่างหนักในขณะที่ไฟล์อื่นแยกออกจากกัน ตัวอย่างเช่นhourly.1/file1และhourly.2/file1อาจเชื่อมโยงอย่างหนักกับไฟล์เดียวกันในขณะที่hourly.1/file2และhourly.2/file2เป็นไฟล์ที่แยกจากกันโดยสิ้นเชิง ฉันต้องการค้นหาจำนวนพื้นที่ที่โฟลเดอร์ใช้เพื่อhourly.2 เพิกเฉยต่อไฟล์ใด ๆ ที่เป็นลิ้งค์ไปยังไฟล์hourly.1ต่างๆ ดังนั้นในตัวอย่างข้างต้นฉันอยากได้ขนาดของ file2 แต่ไม่สนใจ file1 ฉันใช้ bash บน linux และฉันต้องการทำสิ่งนี้จากบรรทัดคำสั่งให้ง่ายที่สุดเท่าที่จะทำได้ดังนั้นจึงไม่มีโซลูชันกราฟิกหรือระบบปฏิบัติการอื่น ๆ

2
cp ทำงานอย่างประหลาดเมื่อ (dot) หรือ .. (dot dot) เป็นไดเรกทอรีต้นทาง
คำตอบนี้แสดงให้เห็นว่าสามารถคัดลอกไฟล์ทั้งหมด - รวมถึงไฟล์ที่ซ่อน - จากไดเรกทอรีsrcไปยังไดเรกทอรีdestเช่น: mkdir dest cp -r src/. dest ไม่มีคำอธิบายในคำตอบหรือความคิดเห็นว่าทำไมมันถึงใช้งานได้จริงและดูเหมือนว่าไม่มีใครพบเอกสารประกอบในเรื่องนี้ ฉันลองทำบางสิ่ง ครั้งแรกกรณีปกติ: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src dest $ ls -A dest dest_file src จากนั้น/.ในตอนท้าย: $ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file $ cp -r src/. …

2
มีความแตกต่างระหว่างการเชื่อมโยงกับ cp -l หรือ ln หรือไม่?
ฉันใช้รูปแบบการสำรองข้อมูลโดยใช้ rsync และ hardlinks ฉันรู้ว่าฉันสามารถใช้ link-dest กับ rsync เพื่อทำลิงก์ได้ แต่ฉันเห็นการใช้ "cp -l" ก่อนหน้า "link-dest" ถูกใช้ใน rsync อีกวิธีในการเชื่อมโยงที่ฉันรู้จักคือ "ln" ดังนั้นคำถามของฉันคือจากความอยากรู้: มีความแตกต่างในการทำลิงก์โดยใช้ "cp -l" เมื่อเทียบกับการใช้ "ln" หรือไม่?
15 cp  hard-link  ln 

1
วิธีค้นหาลิงก์ทั้งหมดไปยังไดเรกทอรี
เมื่อฉันสร้างไดเรกทอรีฉันจะได้รับรายชื่อที่บอกฉันว่ามี 5 ลิงก์ไปยังไดเรกทอรี stat dir คำถามของฉันคือฉันจะรับข้อมูล (ชื่อและที่ตั้ง) ไปยังลิงก์ทั้ง 5 นี้ได้อย่างไร

2
ลิงก์ข้ามอุปกรณ์ไม่ถูกต้องขณะทำการเชื่อมโยงในระบบไฟล์เดียวกัน
ฉันมีไฟล์/home/myuser/Desktop/rc/.netrcที่ฉันต้องการฮาร์ดลิงก์ไปยัง/ rootนั่นคือโฮมไดเร็กทอรีของผู้ใช้รูท เมื่อฉันทำ: ln /home/user/Destkop/rc/.netrc /root มันให้ข้อผิดพลาดดังต่อไปนี้: ln: การสร้างฮาร์ดลิงก์/root/.netrc' =>. netrc ': ลิงก์ข้ามอุปกรณ์ไม่ถูกต้อง แต่การทำงานเมื่อฉัน hardlink ไฟล์เพื่อmyuserของบ้านคือการ/ home / myuser แล้วปัญหาคืออะไรทำไมมันถึงบอกว่าอุปกรณ์ไขว้ที่ไม่ถูกต้องเมื่อมีระบบไฟล์เพียงระบบเดียว? PS ฉันใช้RHEL6
14 rhel  root  home  hard-link  .netrc 

3
จะทำอย่างไรถึงจะมีเพียงพื้นที่ว่างที่ไฟล์ใช้ซึ่งไม่ได้เชื่อมโยงไปถึงที่อื่น?
การใช้สrsync --link-destแนปชอตแบบประหยัดพื้นที่ฉันจะทราบได้อย่างไรว่าฉันได้บันทึกพื้นที่ว่างจำนวนเท่าใด หรือมากกว่าทั่วไป: ทำอย่างไรจึงจะทราบได้ว่าไดเรกทอรีใช้พื้นที่เท่าใดในการพิจารณาเฉพาะไฟล์ที่ไม่ได้เชื่อมโยงกับที่อื่นนอกโครงสร้างไดเรกทอรี คำถามที่แตกต่าง: จำนวนพื้นที่จริงจะเป็นอิสระหลังจากการลบไดเรกทอรีนั้นหรือไม่ ( du -hsจะโกหกพื้นที่ที่จำเป็นสำหรับการเชื่อมโยงอาจรวมอยู่ด้วย)

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