คุณจะตรวจสอบว่าไฟล์เป็นลิงค์ใน Unix ได้อย่างไร?

คุณไม่จำเป็นต้องรันทั้งสองการทดสอบ อันเดียวที่คุณต้องการสำหรับกรณีนี้คือ -h อันเดียวที่จะบอกคุณว่าไฟล์นั้นเป็น symlink หรือไม่ การทดสอบ -f จะบอกคุณว่าวัตถุนั้นเป็นไฟล์เท่านั้นหรือไม่ สิ่งนี้จะคืนค่า 0 หากเป็นไดเร็กทอรีหรือโหนดอุปกรณ์หรือ symlink ไปยังไดเร็กทอรี แต่จะคืนค่า 1 บน symlink ไปยังไฟล์

ในการพิจารณาว่าโฟลเดอร์นั้นเป็นลิงก์สัญลักษณ์หรือไม่ คุณสามารถใช้วิธีใดวิธีหนึ่งเหล่านี้

  1. วิธี GUI: ไอคอนโฟลเดอร์จะแตกต่างออกไป ไอคอนของโฟลเดอร์จะมีลูกศร
  2. วิธี CLI ผลลัพธ์ของ ls -l จะระบุอย่างชัดเจนว่าโฟลเดอร์นั้นเป็นลิงก์สัญลักษณ์ และจะแสดงรายการโฟลเดอร์ที่ชี้ไปด้วย

ในการดูลิงก์สัญลักษณ์ในไดเร็กทอรี:

  1. เปิดเทอร์มินัลแล้วย้ายไปที่ไดเร็กทอรีนั้น
  2. พิมพ์คำสั่ง: ls -la. นี้จะแสดงรายการไฟล์ทั้งหมดในไดเร็กทอรีแม้ว่าจะซ่อนอยู่ก็ตาม
  3. ไฟล์ที่ขึ้นต้นด้วย l คือไฟล์ลิงก์สัญลักษณ์ของคุณ

-L ทดสอบว่ามี symlink เสียหรือไม่ โดย รวมกับ -e คุณสามารถทดสอบได้ว่าลิงก์นั้นถูกต้องหรือไม่ (ลิงก์ไปยังไดเร็กทอรีหรือไฟล์) ไม่ใช่แค่ว่ามีอยู่จริงหรือไม่ ดังนั้นหากไฟล์เป็นไฟล์จริง ๆ และไม่ใช่แค่ลิงก์สัญลักษณ์ คุณสามารถทำการทดสอบทั้งหมดเหล่านี้และรับสถานะการออกซึ่งค่าระบุเงื่อนไขข้อผิดพลาด

“ฮาร์ดลิงก์” ไม่ได้มีอะไรพิเศษจริงๆ เป็นเพียงรายการไดเรกทอรีที่เกิดขึ้นเพื่อชี้ไปที่ข้อมูลเดียวกันบนดิสก์เป็นรายการไดเรกทอรีที่อื่น วิธีเดียวที่จะระบุฮาร์ดลิงก์ได้อย่างน่าเชื่อถือคือ เพื่อจับคู่เส้นทางทั้งหมดบนระบบไฟล์ของคุณกับ inodes แล้วดูว่าเส้นทางใดชี้ไปที่ค่าเดียวกัน.

ฮาร์ดลิงก์คือ โดยพื้นฐานแล้วป้ายกำกับหรือชื่อที่กำหนดให้กับไฟล์. ลิงก์ใหม่นี้ไม่ใช่สำเนาแยกต่างหากของไฟล์เก่า แต่เป็นชื่ออื่นสำหรับเนื้อหาไฟล์เดียวกันกับไฟล์เก่า …

สาเหตุที่ฮาร์ดลิงก์ไดเร็กทอรีคือ ไม่ได้รับอนุญาต เป็นเทคนิคเล็กน้อย โดยพื้นฐานแล้วจะทำลายโครงสร้างระบบไฟล์ โดยทั่วไป คุณไม่ควรใช้ฮาร์ดลิงก์ ลิงก์สัญลักษณ์อนุญาตการทำงานเดียวกันส่วนใหญ่โดยไม่ก่อให้เกิดปัญหา (เช่น ln -s target link )

ไดเร็กทอรีโปรแกรมในตัวจัดการไฟล์ ดูเหมือนว่าจะมีไฟล์อยู่ภายใน /mnt/พาร์ทิชัน/. โครงการ. นอกจาก "ลิงก์สัญลักษณ์" หรือที่เรียกว่า "ซอฟต์ลิงก์" แล้ว คุณยังสามารถสร้าง "ฮาร์ดลิงก์" แทนได้ ลิงก์สัญลักษณ์หรือซอฟต์ลิงก์ชี้ไปที่พาธในระบบไฟล์

ฉันจะใช้ find ใน Linux ได้อย่างไร

ตัวอย่างพื้นฐาน

  1. หา . – ตั้งชื่อ thisfile.txt หากคุณต้องการทราบวิธีค้นหาไฟล์ใน Linux ชื่อไฟล์นี้ …
  2. ค้นหา /home -name *.jpg. มองหาทั้งหมด jpg ใน /home และไดเร็กทอรีด้านล่าง
  3. หา . – พิมพ์ f -empty ค้นหาไฟล์ว่างในไดเร็กทอรีปัจจุบัน
  4. ค้นหา /home -user randomperson-mtime 6 -iname “.db”

หากคุณพบไฟล์สองไฟล์ที่มีคุณสมบัติเหมือนกันแต่ไม่แน่ใจว่ามีฮาร์ดลิงก์หรือไม่ ใช้คำสั่ง ls -i เพื่อดูหมายเลขไอโหนด. ไฟล์ที่ฮาร์ดลิงก์เข้าด้วยกันจะใช้หมายเลขไอโหนดเดียวกัน หมายเลขไอโหนดที่ใช้ร่วมกันคือ 2730074 หมายความว่าไฟล์เหล่านี้เป็นข้อมูลที่เหมือนกัน

หากต้องการลบลิงก์สัญลักษณ์ ให้ใช้ทั้ง คำสั่ง rm หรือ unlink ตามด้วยชื่อของ symlink เป็นอาร์กิวเมนต์. เมื่อลบลิงก์สัญลักษณ์ที่ชี้ไปยังไดเร็กทอรี อย่าใส่เครื่องหมายทับต่อท้ายชื่อลิงก์สัญลักษณ์

มีคุณลักษณะที่จำกัดสำหรับการทำงานกับลิงก์เชื่อมโยง คลิกขวาที่ลิงก์สัญลักษณ์ > คลิก ClearCase > สำรวจลิงก์เป้าหมาย | คุณสมบัติของ Symlink ในมุมมองสแน็ปช็อต ต้องโหลดเป้าหมายลิงก์สัญลักษณ์ในมุมมองของคุณด้วย เพื่อให้การดำเนินการเป้าหมายของ Symlink ปรากฏขึ้น

ชอบโพสต์นี้? กรุณาแบ่งปันให้เพื่อนของคุณ:
ระบบปฏิบัติการวันนี้