2
ทำลายฮาร์ดลิงก์ทั้งหมดภายในโฟลเดอร์
ฉันมีโฟลเดอร์ที่มีไฟล์จำนวนหนึ่งซึ่งมีฮาร์ดลิงก์ (ในโฟลเดอร์เดียวกันหรือที่อื่น) และฉันต้องการยกเลิกการเชื่อมโยงไฟล์เหล่านี้ดังนั้นพวกเขาจึงเป็นอิสระและการเปลี่ยนแปลงเนื้อหาจะไม่มีผลใด ๆ ไฟล์อื่น ๆ (จำนวนลิงก์ของพวกเขากลายเป็น 1) ด้านล่างนี้ฉันให้วิธีแก้ปัญหาซึ่งโดยทั่วไปจะคัดลอกฮาร์ดลิงก์แต่ละลิงก์ไปยังตำแหน่งอื่นจากนั้นย้ายกลับมาที่เดิม อย่างไรก็ตามวิธีการนี้ดูเหมือนค่อนข้างหยาบและผิดพลาดได้ง่ายดังนั้นฉันต้องการทราบว่ามีคำสั่งบางคำสั่งที่จะยกเลิกการเชื่อมโยงไฟล์สำหรับฉันหรือไม่ คำตอบที่หยาบ: ค้นหาไฟล์ที่มีฮาร์ดลิงก์ ( แก้ไข : หากต้องการค้นหาซ็อกเก็ต ฯลฯ ที่มีฮาร์ดลิงก์ให้ใช้find -not -type d -links +1): find -type f -links +1 # files only find -not -type d -links +1 # files, sockets etc. วิธีหยั่งรู้ในการยกเลิกการเชื่อมโยงไฟล์ (คัดลอกไปยังตำแหน่งอื่นและย้ายกลับ): แก้ไข: ดัง ที่ Celada กล่าวว่าควรทำ cp -p …