วิธีสร้างลิงค์นุ่มหรือสัญลักษณ์?


464

ฉันกำลังติดตั้ง p4v /optแต่/usr/binอยู่ในเส้นทางของฉัน เป็นไปได้หรือไม่ที่จะสร้างลิงค์อ่อนหรือสัญลักษณ์สำหรับ p4v จาก/optไป/usr/binดังนั้นฉันสามารถพิมพ์ "p4v" เนื่องจาก/usr/binอยู่ในเส้นทางของฉันได้หรือไม่


คำตอบ:


666

man lnดู

หากต้องการสร้าง symlink /usr/bin/barซึ่งอ้างอิงไฟล์ต้นฉบับ/opt/fooให้ใช้:

ln -s /opt/foo /usr/bin/bar

คุณจะต้องใช้คำสั่งดังกล่าวเป็นราก (เช่นกับsudo)


ฉันกำลังใช้งาน: กำลัง sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineรับข้อผิดพลาด:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
เอกสารของ Ubuntu บอกว่า "สร้างฮาร์ดลิงก์ตามค่าเริ่มต้นลิงก์สัญลักษณ์ด้วย --symbolic" โซลูชันด้านบนจะสร้างลิงก์สัญลักษณ์ตามที่ถามโดย OP หรือไม่
Tanay

4
ฉันแม้ว่าCésarต้องการวางไฟล์ของเขาใน / opt และ / usr / bin เพื่อให้มีลิงก์สัญลักษณ์ไม่ใช่วิธีอื่น
อุบัติเหตุ

4
@mishap ถูกต้องเท่าที่ฉันกังวล มันเป็นวิธีอื่น ๆ
Daniel Szmulewicz

2
@kevinmicke หลังจากคำอธิบายของคุณในที่สุดก็ตระหนักว่าคำอธิบายของคำตอบถูกระบุไว้ในลำดับที่ย้อนกลับจากคำสั่งทำให้สมองของฉัน (และอื่น ๆ ') อ่านมันย้อนหลัง
Andrew

40

ข้อผิดพลาดคือคุณกำลังเขียนคำสั่งไม่ถูกต้อง วิธีที่ถูกต้องคือ

ln -s /<full>/<path>/<to>/<file> /usr/local/bin

http://ubuntuforums.org/showthread.php?t=2001697


หมายเหตุ foreslash ชั้นนำ /
กระบอง

ขอบคุณฉันพลาดทั้งหมดที่ฉันต้องการเส้นทางที่แน่นอนไปยังไฟล์ที่เชื่อมโยง
Andi R

21

หากปฏิบัติการ 'p4v' อยู่ที่ / opt / bin / p4v คุณสามารถเรียกใช้:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

มันจะเป็นการดีกว่าถ้าคุณจะเพิ่ม / opt / bin (หรือที่ใดก็ตามที่สามารถเรียกใช้งานได้) ลงในพา ธ ของคุณ:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profile$PATHจะดีกว่าสำหรับการตั้งค่า
Lekensteyn

คุณสามารถแก้ไข/etc/environmentเพื่อปรับเปลี่ยนความกว้างของระบบ PATH
MichałŠrajer

4

ตรวจสอบตำแหน่งซอฟต์แวร์ตามนี้

which application-name #replace for the application you are looking for

ตัวอย่างเช่น

which skype

ผลลัพธ์จะเป็นแบบนี้

/usr/bin/skype 

เพื่อสร้างซอฟต์ลิงค์ ตัวอย่างเช่นคุณต้องการสร้างซอฟต์ลิงค์สำหรับskypeบนเดสก์ท็อปของคุณ

ln -s /usr/bin/skype ~/Desktop/

lnสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ

man ln

หรือ

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

หมายเหตุการทำงานนี้หากคุณทั้งสองโหนดอยู่ต่ำกว่าคุณในทรีเดียวกัน คุณสามารถใช้สัญกรณ์สัมพัทธ์

  • คำสั่ง -s ทำให้มันเป็นลิงค์สัญลักษณ์
  • -n ทำให้มันเป็นไปได้ในการสร้าง symlink ประเภทโฟลเดอร์

ยินดีต้อนรับสู่ askubuntu.com ในกรณีนี้การ$บ่งชี้บรรทัดคำสั่งเป็นตัวเลือกลักษณะและไม่น่าจะเป็นปัญหา อย่างไรก็ตามโปรดจำไว้ว่าการรวมสิ่งต่าง ๆ ในบล็อกโค้ดนอกเหนือจากรหัสและผลลัพธ์อาจทำให้เกิดความสับสน
J. Starnes

1

แม่แบบนี้มีประโยชน์สำหรับฉันมากกว่าคำตอบข้างต้น อาจไม่ถูกต้องมากขึ้นมีความสับสนน้อยลง:

ln -s <path/to/real/file-or-folder> <symlink path>

เพียงแค่เปลี่ยนชิ้นส่วนใน<>'s


0

หากมีการพูดtarget is not a folderหมายความว่ามีช่องว่างในชื่อโฟลเดอร์ของคุณเช่น: New Folderมีช่องว่าง

คุณต้องแก้ไขพา ธ และเพิ่มแบ็กสแลช\หลังทุกพื้นที่ในพา ธ

เช่น:

ln -s /opt/bin /usr/var/New\ Folder

3
นี่ไม่ใช่คำตอบสำหรับคำถาม OPs โปรดรอจนกว่าคุณจะมีชื่อเสียงพอที่จะเพิ่มความคิดเห็น
derHugo

0

ฉันได้พบว่ามันเป็นเรื่องง่ายที่จะไปที่ที่คุณต้องการเชื่อมโยงที่จะแล้วสร้างการเชื่อมโยงโดยใช้กว่าทำsudo ln -s /path/to/source/fileln -s target source

ดังนั้นในกรณีของคุณฉันจะทำแล้วcd /usr/bin sudo ln -s /opt/bin/pv4วิธีอื่นไม่ได้ทำงานในกรณีของฉัน

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