คำถามติดแท็ก ln

ln - เครื่องมือบรรทัดคำสั่งเพื่อสร้างฮาร์ดลิงก์ไปยังไฟล์ที่มีอยู่และซอฟต์ลิงก์ไปยังไฟล์ที่มีอยู่และไม่มีอยู่จริง

4
สร้างลิงก์สัญลักษณ์ที่สัมพันธ์กับไดเรกทอรีปัจจุบัน
ฉันกำลังพยายามสร้างลิงก์สัญลักษณ์ในไดเรกทอรีบ้านของฉันซึ่งชี้ไปยังไดเรกทอรีบน HDD ภายนอกของฉัน มันทำงานได้ดีเมื่อฉันระบุเช่นนี้: cd ~ ln -s /run/media/name/exhdd/Data/ Data อย่างไรก็ตามมันสร้างลิงค์ที่ผิดพลาดเมื่อฉันลองทำสิ่งนี้: cd /run/media/name/exhdd ln -s Data/ ~/Data นี้จะสร้างการเชื่อมโยงที่ฉันไม่สามารถcdเข้าสู่ เมื่อฉันพยายามทุบตีบ่น: bash: cd: Data: Too many levels of symbolic links ลิงก์สัญลักษณ์ข้อมูลในบ้านของฉันยังเป็นสีแดงเมื่อlsตั้งค่าให้แสดงเอาต์พุตสี ทำไมสิ่งนี้จึงเกิดขึ้น ฉันจะสร้างลิงค์ในลักษณะนั้นได้อย่างไร? (ฉันต้องการสร้าง symlink ไปยังไดเรกทอรีในไดเรกทอรีทำงานของฉันในไดเรกทอรีอื่น) แก้ไข:ตามนี้คำตอบ StackOverflow ถ้าอาร์กิวเมนต์ที่สอง (ในกรณีของฉันที่ต้องการจะ ~ / ข้อมูล) อยู่แล้วและเป็นไดเรกทอรีที่lnจะสร้าง symlink เพื่อเป้าหมายภายในไดเรกทอรีที่ อย่างไรก็ตามฉันประสบปัญหาเดียวกันกับ: ln -s Data/ ~/
110 directory  symlink  ln 

5
มีลิงก์สัญลักษณ์หลายระดับเกินไป
ฉันสร้างโครงสร้างไฟล์นี้: test/src test/firefox เมื่อฉันเรียกใช้คำสั่งนี้: ln -s test/src test/firefox ฉันคาดว่าลิงก์สัญลักษณ์test/firefox/srcจะถูกสร้างขึ้นชี้ไปที่test/srcแต่ฉันได้รับข้อผิดพลาดนี้แทน: -bash: cd: src: Too many levels of symbolic links ผมทำอะไรผิดหรือเปล่า? คุณไม่สามารถสร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์หนึ่งซึ่งเก็บไว้ในพี่น้องของโฟลเดอร์นั้นได้หรือไม่? ประเด็นนี้คืออะไร?
100 linux  filesystems  ln 

14
เคล็ดลับในการจดจำลำดับของพารามิเตอร์สำหรับ ln
ฉันเคยlnเขียนลิงก์สัญลักษณ์มาหลายปีแล้ว แต่ฉันก็ยังได้คำสั่งของพารามิเตอร์ผิดไปหมด ฉันมักจะเขียนสิ่งนี้: ln -s a b จากนั้นดูผลลัพธ์เพื่อเตือนตัวเอง ฉันมักจะจินตนาการว่าจะเป็นa -> bเมื่อฉันอ่านมันเมื่อมันตรงกันข้ามจริงb -> aๆ สิ่งนี้ให้ความรู้สึกต่อต้านเคาน์เตอร์ดังนั้นฉันจึงพบว่าฉันคาดเดาตัวเองอยู่เสมอ ใครบ้างมีเคล็ดลับที่จะช่วยให้ฉันจำลำดับที่ถูกต้อง?
64 symlink  ln 

3
วิธีเปลี่ยนความเป็นเจ้าของจากลิงก์สัญลักษณ์?
ฉันกำลังประสบปัญหาบางอย่างกับการสร้างลิงค์นุ่ม ๆ ต่อไปนี้เป็นไฟล์ต้นฉบับ $ ls -l /etc/init.d/jboss -rwxr-xr-x 1 askar admin 4972 Mar 11 2014 /etc/init.d/jboss การสร้างลิงก์ล้มเหลวด้วยปัญหาการอนุญาตสำหรับเจ้าของไฟล์: ln -sv jboss /etc/init.d/jboss1 ln: creating symbolic link `/etc/init.d/jboss1': Permission denied $ id uid=689(askar) gid=500(admin) groups=500(admin) ดังนั้นฉันจึงสร้างลิงก์ด้วยสิทธิ์ sudo: $ sudo ln -sv jboss /etc/init.d/jboss1 `/etc/init.d/jboss1' -> `jboss' $ ls -l /etc/init.d/jboss1 lrwxrwxrwx 1 …

1
ทำไม reboot, shutdown และ poweroff symlink ถึง systemctl?
ในซุ้มลินุกซ์ถ้าผมทำls -lใน/sbinผมจะเห็นว่าreboot, shutdownและpoweroffมี symlinks /usr/bin/systemctlทั้งหมดเพื่อ แต่ออกreboot, shutdownและsystemctlคำสั่งเห็นได้ชัดไม่ทุกคนมีพฤติกรรมเดียวกัน จะls -lไม่แสดงข้อมูลทั้งหมดเกี่ยวกับ symlink ให้ฉันหรือไม่ ยกตัวอย่างเช่นฉันจะรู้ได้อย่างไรว่า symlink ที่แท้จริงrebootคืออะไร?
28 arch-linux  ls  symlink  reboot  ln 

2
เหตุใด ln -s จึงยอมรับอาร์กิวเมนต์เดี่ยว
> cd /tmp > ln -s foo > ls -alhF /tmp lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo นี่เป็นข้อบกพร่องlnหรือมีกรณีการใช้งานสำหรับการเชื่อมโยงไฟล์กับตัวเองหรือไม่? coreutils 8.21-1ubuntu5.1นี้จะมีการ
27 symlink  coreutils  ln 

4
ln -s พร้อมกับพา ธ ที่สัมพันธ์กับ pwd
ฉันพยายามสร้างลิงก์สัญลักษณ์มากมาย แต่ฉันไม่สามารถเข้าใจได้ว่าทำไมสิ่งนี้ถึงใช้งานได้ ln -s /Users/niels/something/foo ~/bin/foo_link ในขณะนี้ cd /Users/niels/something ln -s foo ~/bin/foo_link ไม่ใช่. ฉันเชื่อว่ามีบางอย่างเกี่ยวข้องกับการfoo_linkเชื่อมโยงไปยัง foo /Users/niels/binแทน/Users/niels/something ดังนั้นคำถามคือฉันจะสร้างลิงก์สัญลักษณ์ที่ชี้ไปยังเส้นทางที่แน่นอนได้โดยไม่ต้องพิมพ์ได้อย่างไร สำหรับการอ้างอิงฉันใช้ Mac OS X 10.9 และ Zsh
26 bash  shell  symlink  ln 

2
ผลการเชื่อมโยงสัญลักษณ์ที่ปฏิบัติการได้ใน“ ไม่พบคำสั่ง”
ฉันสร้างลิงก์สัญลักษณ์ (เมื่อวาน) เช่นนี้: sudo ln -s bin/python /usr/bin/prj-python เมื่อฉันวิ่ง: prj-python file.py ฉันเข้าใจ: prj-python: command not found เมื่อฉันลองสร้างลิงค์อีกครั้งฉันจะได้รับ: ln: การสร้างลิงก์สัญลักษณ์ `/ usr / bin / prj-python ': ไฟล์มีอยู่ ทำไมถึงเกิดขึ้น? ของฉัน$PATHคือ: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / …
24 symlink  ln 

1
ความหมายของ 'ln -sf' ใน Linux คืออะไร
ฉันมี 2 คำถาม ตัวแรกคือ-sfตัวเลือกและตัวที่สองสำหรับการใช้งาน-fตัวเลือกที่เฉพาะเจาะจงมากขึ้น โดย googling ฉันคิดออกคำอธิบายของคำสั่งlnตัวเลือกและ-s-f (คัดลอกจากhttp://linux.about.com/od/commands/l/blcmdl1_ln.htm ) -s, --symbolic : make symbolic links instead of hard links -f, --force : remove existing destination files ฉันเข้าใจตัวเลือกเหล่านี้เป็นรายบุคคล แต่วิธีที่สามารถใช้นี้-sและ-fตัวเลือกพร้อมกัน? -sใช้สำหรับสร้างไฟล์ลิงค์และ-fใช้สำหรับลบไฟล์ลิงค์ ฉันไม่เข้าใจสถานการณ์นี้และเหตุใดจึงต้องใช้ตัวเลือกการผสานนี้ หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับlnคำสั่งฉันได้ทำตัวอย่าง $ touch foo # create sample file $ ln -s foo bar # make link to file $ vim …
21 shell  ln 

1
ln หมายถึงอะไร
ใน Linux คุณสามารถใช้lnคำสั่งเพื่อสร้างลิงก์ $ touch foo $ ln -s foo foo_link $ ls -l lrwxrwxrwx 1 cklein cklein 3 May 29 16:11 foo_link -> foo ฉันคิดว่า 'l' ในคำlnว่า "ลิงก์" แต่ "n" หมายถึงอะไร สิ่งที่lnยืนหยัดเพื่อ?
17 symlink  ln 


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

3
จะสร้างลิงค์สัญลักษณ์ไปยัง / usr / bin / vim แต่มีพารามิเตอร์เริ่มต้นได้อย่างไร
หลังจากที่ฉันmake&make installเป็นกลุ่มจากแหล่งที่มาฉันพบลิงค์สัญลักษณ์หลายแห่งในกลุ่ม/usr/local/binเช่น evim, rvim, view ... vim(1)หน้าคนพูดว่า "rvim" เทียบเท่ากับ "กลุ่ม -Z" และอื่น ๆ ตอนนี้ฉันสงสัยว่า: ฉันสามารถสร้างลิงก์สัญลักษณ์กับln(1)ตัวเองได้หรือไม่และถ้าเป็นเช่นนั้นได้อย่างไร
13 vim  symlink  ln 

3
ทำไมฉันไม่สามารถสร้างฮาร์ดลิงก์จากไฟล์อุปกรณ์ในไดเรกทอรีอื่นที่ไม่ใช่ / dev
เมื่อฉันต้องการสร้างการเชื่อมโยงอย่างหนักใน/homeไดเรกทอรีของฉันในโหมดราก , Linux แสดงข้อความข้อผิดพลาดต่อไปนี้: ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link ข้อความแสดงข้อผิดพลาดด้านบนแสดงอยู่ด้านล่าง: # cd /home/user/ # ln /dev/sda1 my_sdb แต่ฉันสามารถสร้างฮาร์ดลิงก์ใน/devไดเรกทอรีและเป็นไปไม่ได้ในไดเรกทอรีอื่น ตอนนี้ฉันต้องการทราบวิธีสร้างฮาร์ดลิงก์จากไฟล์อุปกรณ์ที่มีอยู่ (เช่นsdb1) ใน/homeไดเรกทอรี (หรือไดเรกทอรีอื่น ๆ ) หรือไม่
11 linux  hard-link  ln 

3
การทำสมนามไฟล์ Symlink ในไดเรกทอรีย่อยโดยไม่เปลี่ยนไดเรกทอรีปัจจุบัน
ดูเหมือนว่าควรเชื่อมโยงไฟล์หนึ่งไฟล์กับไฟล์ใหม่ในไดเรกทอรีย่อย .... โดยไม่ต้องย้ายไดเรกทอรีย่อย แต่สิ่งที่เกี่ยวกับไวยากรณ์นั้นน่างงงวยและตอบโต้กับสิ่งที่ฉันคาดหวัง นี่คือกรณีทดสอบ: mkdir temp cd temp mkdir deploy echo "Contents of the build file!" > deploy/resources.build.php ln -s deploy/resources.build.php deploy/resources.php cat deploy/resources.php #bad symlink นี่เป็นเพียงการสร้าง symlink ที่ใช้งานไม่ได้! ฉันกำลังเรียกใช้สิ่งนี้ในสคริปต์การตั้งค่าสภาพแวดล้อมการสร้างดังนั้นฉันต้องการหลีกเลี่ยงการเปลี่ยนไดเรกทอรีการทำงานปัจจุบันหากเป็นไปได้ ln -s deploy/resources.build.php resources.php cat deploy/resources.php ยังใช้งานไม่ได้เพราะมันสร้าง symlink ในไดเรกทอรีชั่วคราวแทนไดเรกทอรีย่อยปรับใช้ cd deploy ln -s resources.build.php resources.php cd .. ใช้งานได้ แต่ฉันต้องการทราบวิธีการทำโดยไม่ต้องเปลี่ยนไดเรกทอรี …
11 directory  symlink  ln 

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