Bagaimana cara membuat tautan lunak atau simbolis?

465

Saya menginstal p4v di /opt, tetapi /usr/binada di jalur saya. Apakah mungkin untuk membuat tautan lunak atau simbolis untuk p4v dari /optke /usr/bin, jadi saya cukup mengetik "p4v" karena /usr/binada di jalur saya?

kopi
sumber

Jawaban:

666

Lihat man ln.

Untuk membuat symlink /usr/bin/bartempat referensi file asli /opt/foo, gunakan:

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

Anda perlu menerapkan perintah di atas sebagai root (yaitu dengan sudo).

Michał Šrajer
sumber
Saya menggunakan: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redminemendapatkan kesalahan:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...
1
Dokumentasi Ubuntu mengatakan "Membuat tautan keras secara default, tautan simbolik dengan --symbolic." Apakah solusi di atas akan membuat tautan simbolis seperti yang diminta oleh OP?
Tanay
4
Saya pikir Cesar ingin meletakkan file-nya di / opt dan / usr / bin untuk memiliki tautan simbolik, bukan sebaliknya.
kecelakaan
4
@ kecelakaan benar sejauh yang saya ketahui. Itu sebaliknya.
Daniel Szmulewicz
2
@kevinmicke setelah penjelasan Anda akhirnya menyadari bahwa penjelasan jawaban dinyatakan dalam urutan terbalik dari perintah, membuat otak saya (dan yang lain ') membacanya mundur
Andrew
40

Kesalahannya adalah Anda salah menuliskan perintah. Cara yang benar adalah

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

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

Pedro Arnoldo Machado Duran
sumber
Perhatikan ramalan terdepan /
gada
Terima kasih, saya benar-benar ketinggalan bahwa saya membutuhkan jalur absolut ke file yang ditautkan.
Andi R
21

Jika executable 'p4v' ada di / opt / bin / p4v, Anda bisa menjalankan:

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

Akan lebih baik untuk menambahkan / opt / bin (atau di mana pun executable) ke jalur Anda:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset
dv3500ea
sumber
~/.profileakan lebih baik untuk pengaturan $PATH.
Lekensteyn
Anda dapat mengedit /etc/environmentuntuk mengubah lebar sistem PATH.
Michał Šrajer
4

Periksa lokasi perangkat lunak dengan ini.

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

sebagai contoh

which skype

output akan seperti ini.

/usr/bin/skype 

Untuk membuat tautan lunak. misalnya Anda ingin membuat tautan lunak skypedi desktop Anda

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

Untuk informasi lebih lanjut tentang ln.

man ln

atau

ln --help
Hafiz Shehbaz Ali
sumber
2
ln -s -n ./TargetDirectory ./Nickname

Catatan, ini berfungsi jika Anda berdua node di bawah Anda di pohon yang sama. Anda dapat menggunakan notasi relatif

  • Perintah -s menjadikannya tautan simbolis
  • -n memungkinkan untuk membuat symlink tipe folder
Mohamad El Boudi
sumber
Selamat datang di askubuntu.com. Dalam hal ini $untuk menunjukkan prompt baris perintah adalah pilihan gaya, dan tidak akan menjadi masalah. Namun perlu diingat bahwa memasukkan hal-hal dalam blok kode selain kode dan hasilnya dapat menyebabkan kebingungan.
J. Starnes
1

Template ini lebih membantu saya daripada jawaban di atas. Mungkin tidak lebih benar, hanya sedikit dikaburkan:

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

Hanya mengganti bagian-bagian dalam <>'s

LucasY
sumber
0

Jika dikatakan target is not a folder, itu berarti ada spasi di nama folder Anda misalnya: New Foldermemiliki spasi

Anda perlu mengedit jalur dan menambahkan garis miring terbalik \setelah setiap ruang di jalur

misalnya:

ln -s /opt/bin /usr/var/New\ Folder
Sam
sumber
3
Ini bukan jawaban untuk pertanyaan OP. Harap tunggu hingga Anda memiliki reputasi yang cukup untuk menambahkan komentar.
derHugo
0

Saya telah menemukan bahwa lebih mudah untuk pergi ke tempat yang Anda inginkan tautannya dan kemudian membuat tautan menggunakan sudo ln -s /path/to/source/file, daripada melakukan ln -s target source.

Jadi dalam kasus Anda, saya akan melakukan cd /usr/binitu sudo ln -s /opt/bin/pv4. Cara lain belum berhasil dalam kasus saya.

briankip
sumber