NAME ln -- make a link
SYNOPSIS ln name1[ name2 ]
DESCRIPTION ln creates a link to an existing file name1.
If name2 is given, the link has that name;
1971 จากยูนิกซ์คู่มือฉบับพิมพ์ครั้งแรก
มีรูปแบบที่สองง่ายไวยากรณ์
แก้ไข:ฉันใส่ไฟล์หรือ FILENAME แทนเป้าหมาย --- เห็นความคิดเห็น ฯลฯ นอกจากนี้ยังเห็นนานมากที่ด้านล่างที่อยู่ ภูเขาน้ำแข็งแข็งและอ่อนของln
ไม่เพียงปลายของมัน
ดังนั้น GNU จึงln
มีสิ่งนี้:
ln [opt] FILENAME
In the 2nd form, create a link to FILENAME in the current directory.
คุณไม่ต้องการชื่อลิงก์ หลังจากที่ln -s /usr/lib/modules
คุณได้รับ
modules -> /usr/lib/modules
ด้วยชื่อเดียวกันกับ FILENAME ("เป้าหมาย" หรือ "แหล่งที่มา") ตรงที่คุณอยู่ ไม่มีทางเลือกไม่มีความสับสน
ตอนนี้ถ้าคุณต้องการมากขึ้นและต้องการลิงค์ที่สร้างขึ้นภายใต้ชื่ออื่นและ / หรือที่อื่นคุณต้องเพิ่มความปรารถนานั้นเป็นชื่อหรือพา ธ เป้าหมายที่แท้จริงมาก่อนชื่อลิงค์พิเศษแนวใหม่ที่สอง
หรือคุณพูดว่า: "ฉันรู้เครื่องหมายลูกศรนี้ls -l
สำหรับลิงก์ฉันไม่มีลูกศรในเปลือกเพื่อแสดงทิศทางของลิงก์ของฉันดังนั้นฉันต้องหมุนไปรอบ ๆ "
คุณสร้างมันในทิศทางเดียวดังนั้นคุณสามารถใช้มันในทิศทางอื่น
(สิ้นสุดส่วนคำตอบ - คำถาม)
ในอีกระดับหนึ่งคำว่า "ลิงก์" นั้นมีความหมายที่ซ่อนอยู่ลึกคู่ ลิงก์สัญลักษณ์มาภายหลังดังนั้นในวันแรก ๆ ลิงก์ก็เป็นเพียงลิงก์ ไม่มีอ่อนและแข็งไม่มี-s
ตัวเลือก และตอนนี้ฉันยังใช้สัญลักษณ์แหล่งที่มาเป้าหมาย:
mv A B --- move the whole file to B (dir or new name)
cp A B --- copy whole file (mv and cp are "the same" here)
ln A B --- copy whole file MINUS data blocks (=copy only inode and name), and increase "link count" for track keeping
ในขั้นตอนนี้มีการเชื่อมโยง แต่ไม่มีการแข็งและอ่อนนุ่มและls -l
ไม่แสดงลูกศรเนื่องจากไม่มีทิศทางในการเชื่อมโยง (ฮาร์ด) ลิงก์ "" ในขั้นตอนของวิวัฒนาการยูนิกซ์นั่นหมายความว่าชื่อไฟล์ "B" (รายการไดเรกทอรี "B") ในระบบไฟล์จะชี้ไปที่ไอโหนดเดียวกันกับชื่อไฟล์ "A"
ไฟล์ A และ B นั้น "เชื่อมโยง" เข้าด้วยกันเพราะพวกมันแบ่งปันบล็อกเดียวกัน ตอนนี้ทุก ๆ rm เคอร์เนลต้องตรวจสอบ: ฉันจะลบ / ปล่อยบล็อกของไฟล์นี้บนดิสก์หรือไม่หรือมีไฟล์อื่นเชื่อมโยงกับบล็อกเดียวกันหรือไม่ เพื่อที่จะใช้ลิงค์เคาน์เตอร์
สมมติว่าคุณต้องการที่จะเก็บไฟล์ขนาดใหญ่ใน tmp / Grom ln /tmp/bigfile
ถูกลบและทำ ตอนนี้คุณมีไฟล์ขนาดใหญ่ในไฟล์ dir ที่คุณใช้งานอยู่ หลังจากทำความสะอาด / tmp และ rmoving "ต้นฉบับ" คุณมีความสุขที่ใช้บล็อกข้อมูลเดียวกัน คุณไม่ได้รับลิงก์ที่ไม่ทำงานหรือห้อยต่องแต่งคุณมีไฟล์ปกติ ชี้ไปที่ไม่มีไฟล์ แต่บล็อกระบบไฟล์เท่านั้นเช่นเดียวกับทุกรายการ dir เฉพาะตอนนี้ "การทำความสะอาด" / tmp ไม่ได้เป็นประสิทธิภาพเหมือนเดิม มันดูว่างเปล่าและมันเป็น แต่บล็อกบนพาร์ติชันไม่ได้รับการปลดปล่อย
แม้ว่าฮาร์ดลิงก์จะไม่เสียค่าใช้จ่ายของพื้นที่ แต่อย่างใด cp ก็สามารถทำได้โดยอ้อม
การเพิ่มln -s
ไปยังลำดับข้างต้น:
ln -s A B --- copy only the file's name to "B"
ตอนนี้ "B" ซอฟต์ลิงค์มีเพียงสตริงที่มีชื่อพา ธ นี่คือข้อมูล "อ่อน" ในทางเทคนิค "A" และ "B" นั้นไม่เกี่ยวข้องกัน แต่ยังคง B คือ "ลิงค์" ในแง่ใหม่ที่คุณสามารถใช้ชื่อพา ธ ที่เก็บไว้เป็นทางลัดไปที่ "A" ตอนนี้มันเป็น"ลิงก์ไปยัง A" (จุด) และไม่"เชื่อมโยงกับ inode ของไฟล์ A"
ลิงก์ทั้งสองประเภทนั้นอาจสร้างความสับสนให้กับมนุษย์ไม่เพียง แต่กับเคอร์เนล / fs บันทึกหน้า man 1971: "BUGS: links ได้รับการแบ็คอัพสองครั้งและเรียกคืนเป็นไฟล์แยกต่างหากพร้อม inodes แยกต่างหาก"
ลิงก์ถาวรไปยังไดเรกทอรี (หายาก / ไม่อนุญาต) สามารถนำไปสู่การอุดตันได้ง่าย
ซอฟต์ลิงค์ไปยังไดเรคทอรี (พบบ่อยมาก) สามารถนำไปสู่ลูปนิรันดร์ - จะต้องรู้จักยูทิลิตี้ / เคอร์เนล
ตัวอย่างการปฏิบัติในทุบตี
เริ่มต้นด้วยไฟล์ "F" ปกติ ...
ln F Fhard
... ทำให้ Fhard ขนาดเท่า F แต่ตอนนี้ทั้งคู่ปรากฏเป็นสีแดงเข้มโดยไม่มีลูกธนูเข้าls -l --color
มา เนื่องจากการstat
แสดง "ลิงค์: 2" ในการเชื่อมต่อกับ "Inode: xyz" การเชื่อมโยงอย่างหนัก F เปลี่ยน F ให้เป็นการเชื่อมโยงที่ยาก ทั้งคู่เป็น / stay filetype "ไฟล์ปกติ" แต่ทั้งคู่มีไอโหนดที่มีจำนวนลิงก์ด้านบน 1
ln -s F Fsoft
... ทำให้ไฟล์ "ไม่สม่ำเสมอ" เล็ก ๆ "Fsoft" พร้อม filetype "symbolic link" --- ยิ่งประหยัดพื้นที่มากกว่าไดร์เปล่า ls -l
แสดงให้เห็นว่าไม่มีอะไรพิเศษสำหรับ "F" สำหรับ Fsoft ขนาดที่แสดงคือ 1 ไบต์เนื่องจากสตริงคือ 'F' และFsoft -> F
แสดงเป็นชื่อ ไม่จำเป็นต้อง colorize ลิงค์อ่อนเพื่อรับรู้ เพราะในรูปแบบสั้น ๆls -F
คุณจะได้ห่วงโซ่ม้วน@
ต่อท้าย:Fsoft@
ด้วยls -l
ลักษณะเช่นนี้:
-rw-r--r-- 2 root root 6070340 Sep 16 16:28 F
-rw-r--r-- 2 root root 6070340 Sep 16 16:28 Fhard
lrwxrwxrwx 1 root root 1 Sep 16 16:31 Fsoft -> F
Fhard มีขนาดและประเภทของ F
Fsoft มีชื่อของ F และความยาวของชื่อ F เป็นขนาดและประเภทไฟล์อื่น
สั้นls -sF
:
5932 F 5932 Fhard 0 Fsoft@
การเพิ่ม--block-size=1
ไม่ได้ทำให้มีขนาดเท่ากัน Fsoft มีขนาด "หนึ่งไบต์บล็อกเป็นศูนย์" F และ Fhard เบี่ยงเบนแบบขนาน:
6074368 F 6074368 Fhard 0 Fsoft@
เพื่อดูว่า Fsoft ห้อยอยู่หรือไม่ls
ให้คุณใช้สี
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
a
และเรียกมันว่าb
"