Cara membuat symlink ke root


13

Saya ingin membuat symlink ke /folder root ( ) di direktori home saya. Namun jika saya mencoba ini, saya mengerti

~$ ln -s /
ln: failed to create symbolic link './': File exists

Saya bisa melakukan ini menggunakan Nautilus Ctrl+ D, tentu saja, jadi saya tahu itu mungkin.

Bagaimana cara menggunakan terminal?


Meskipun ini adalah pertanyaan yang bagus, saya ingin tahu alasan mengapa Anda ingin melakukan ini? Apakah terlalu sulit untuk mengetik cd /? Atau apakah Anda suka membuat tautan yang akan terus berulang berulang? Contoh: cd root/home/terrance/root/home/terrance/root/home/terrance/root. . . dll.
Terrance

tidak juga. Anda bisa melakukan ini tanpa perlu menautkan ke root. sebenarnya, saya hanya ingin tahu mengapa Anda tidak bisa melakukannya
Ankur S

Cukup adil. Terima kasih telah menjawab pertanyaan saya. =)
Terrance

Jawaban:


17

Anda kehilangan nama tautannya, seharusnya:

cd ~
ln -s / root

Yang kemudian akan membuat symlink disebut root di direktori home Anda. Jadi penggunaan yang benar adalah:

ln -s <target> <link-name>

Pesan kesalahan yang Anda lihat adalah, yang ./selalu ada dan tautan tidak dapat dibuat dengan nama ini, yang terbaik adalah dengan menggunakan lnperintah 2 dengan kedua parameter untuk mencegah tautan yang salah.

Dari man ln:

RINGKASAN

(1st form) ln [OPTION]... [-T] TARGET LINK_NAME  
(2nd form) ln [OPTION]... TARGET  
(3rd form) ln [OPTION]... TARGET... DIRECTORY  
(4th form) ln [OPTION]... -t DIRECTORY TARGET...  

DESKRIPSI

Di formulir 1, buat tautan ke TARGETdengan nama LINK_NAME. Dalam formulir ke-2, buat tautan ke TARGETdalam direktori saat ini. Di formulir 3 dan 4, buat tautan ke masing-masing TARGETdi DIRECTORY. Buat tautan keras secara default, dengan tautan simbolik --symbolic. Secara default, setiap tujuan (nama tautan baru) seharusnya belum ada 4 . Saat membuat tautan keras, masing TARGET- masing harus ada. Tautan simbolik dapat menampung teks sewenang-wenang; jika nanti diselesaikan, tautan relatif ditafsirkan terkait dengan direktori induknya.

Argumen wajib untuk opsi lama juga wajib untuk opsi pendek.

PILIHAN

Parameter terakhir <link-name>,, default ke bagian terakhir dari target. Jadi ketika targetnya adalah /path/dirnama tautan akan default dirjika tidak ditentukan. 1 Dan jika Anda misalnya membuat ~/etcdengan mkdir ~/etcdan kemudian jalankan ln -s /etcdi ~tidak dapat membuat link karena nama / direktori sudah ada. 3

Dan Anda dapat melihat tautan yang dibuat di direktori home Anda (di sini sebagai contoh, tentu saja Anda bebas memberi nama apa pun yang Anda suka):

$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /

1 Terima kasih kepada @thomasrutter karena menunjukkannya.
2 Lihat juga man linkdan man symlink
3 Terima kasih kepada @steeldriver karena memberikan contoh dalam komentar.
4 Tekankan bagian untuk menunjukkan teks karena ini relevan dengan pertanyaan.


Satu-satunya keraguan saya yang tersisa adalah mengapa perintah seperti itu ln -s /etcberfungsi tetapi tidak yang ini? Terima kasih atas jawabannya,
Ankur S

Itu dibuat karena memiliki nama direktori, /bisa di-root atau bisa menjadi komponen path sehingga program tidak bisa tahu apa yang dimaksud sekarang. /etchanyalah jalur yang dapat dibedakan secara eksplisit.
Videonauth

7
@AnkurSonawane karena ./akan selalu ada - ./etctidak begitu mungkin. Coba mkdir etcdulu, dan kemudian ln -s /etc- Anda juga akan mendapatkanFile exists
steeldriver

8
Parameter terakhir, nama tautan, default ke bagian terakhir dari target jika dihilangkan. Jadi ketika targetnya adalah /some/dirnama tautan akan default dirjika tidak ditentukan. Namun, ketika targetnya adil /, ini tidak akan berhasil.
thomasrutter

Saya tidak merasa bahwa ini sangat signifikan tetapi penjelasan @steeldriver terdengar lebih masuk akal mengingat File Existshasilnya. Toh itu tidak penting karena ini adalah kasus yang merosot
Ankur S
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.