Links (Hard Links, Symbolic Links) Linux Ubuntu


ln – Membuat Links
Perintah ln digunakan untuk membuat baik hard link atau symbolic link. Untuk membuatnya gunakan salah satu dari dua cara ini :

ln link file

untuk membuat hard link, dan:

ln-s Item Link

untuk membuat link simbolik di mana “Item” merupakan file atau direktori.

Hard Links
Link keras adalah cara Unix asli membuat link, dibandingkan dengan link simbolik, yang lebih modern. Ketika kita membuat hard link, kita membuat entri direktori tambahan untuk file. Hard keras memiliki dua keterbatasan penting:

  1. Sebuah hard link tidak dapat referensi file di luar sistem file sendiri. Ini berarti link
    tidak mungkin referensi file yang tidak pada partisi disk yang sama sebagai link itu sendiri.
  2. Sebuah hard link tidak mungkin referensi direktori.

Sebuah hard link tidak dapat dibedakan dari file itu sendiri. Tidak seperti link simbolik, ketika anda mendaftar direktori yang berisi hard link anda akan melihat ada indikasi link khusus. Ketika hard link dihapus, link dihapus tapi isi dari file itu sendiri terus ada (yaitu, ruang yang tidak deallocated) sampai semua link ke file tersebut akan dihapus.

Symbolic Links
Link simbolik diciptakan untuk mengatasi keterbatasan hard link. Link simbolik bekerja dengan menciptakan suatu tipe khusus dari file yang berisi pointer teks ke referensi file atau direktori. Dalam hal ini, mereka beroperasi dalam banyak cara yang sama seperti Windows shortcut.
Sebuah file yang ditunjuk oleh link simbolik, dan link simbolik itu sendiri sebagian besar tidak bisa dibedakan dari satu sama lain. Misalnya, jika anda menulis sesuatu untuk link simbolik, file referensi juga ditulis. Namun bila anda menghapus link simbolis, hanya link akan dihapus, bukan file itu sendiri. Jika file tersebut dihapus sebelum link simbolik, link akan terus ada, tapi akan mengarah ke apapun. Misalnya, jika anda menulis sesuatu untuk link simbolik, file referensi juga ditulis. Namun bila anda menghapus link simbolis, hanya link akan dihapus, bukan file itu sendiri. Jika file tersebut dihapus sebelum link simbolik, link akan terus ada, tapi akan mengarah ke apa-apa. Dalam kasus ini, link dikatakan rusak. Dalam banyak implementasi, perintah ls akan menampilkan link yang rusak dalam warna khas, seperti merah, untuk menyatakan keberadaan mereka.

Contoh:

Membuat Hard Link

1. Membuat direktori dengan nama contoh:

mkdir contoh

2. Pindah ke directory yang baru dibuat dan membuat dua direktori baru:

cd contoh && mkdir dir1 dir2

3. Copy file /etc/passwd ke direktori saat ini

cp /etc/passwd .

4. Muat hard link

ln passwd passwd-hard

ln passwd dir1/passwd-hard

ln passwd dir2/passwd-hard

5. Kita lihat isi dari direktori contoh:

ls -l

Output :

drwxrwxr-x 2 linux linux 4096 Sep 23 09:40 dir1
drwxrwxr-x 2 linux linux 4096 Sep 23 09:40 dir2
-rw-r–r– 2 linux linux 2090 Sep 23 09:47 passwd
-rw-r–r– 2 linux linux 2090 Sep 23 09:47 passwd-hard

Satu hal yang anda perhatikan adalah bahwa kolom kedua dalam daftar untuk passwd dan passwd-hard keduanya berisi “2” yang merupakan jumlah hard link yang sekarang ada untuk file. Anda akan ingat bahwa file akan selalu memiliki minimal satu karena nama file yang dibuat oleh link. Jadi, bagaimana kita tahu bahwa passwd dan passwd-hard, pada kenyataannya, file yang sama? Dalam kasus ini, ls tidak sangat membantu. Sementara kita dapat melihat bahwa passwd dan passwd-hard keduanya berukuran sama (kolom 5), daftar kita tidak menyediakan cara untuk memastikan. Untuk mengatasi masalah ini, kita harus menggali sedikit lebih dalam.

Ketika berpikir tentang hard link, akan sangat membantu untuk membayangkan bahwa file terdiri dari dua bagian: bagian data yang memuat isi file dan bagian nama yang memegang nama file. Ketika kita membuat hard link, kita benar-benar menciptakan bagian nama tambahan yang semua mengacu ke bagian data yang sama. Sistem ini memberikan rantai blok disk untuk apa yang disebut inode, yang kemudian dikaitkan dengan bagian nama. Setiap hard link karena mengacu pada inode tertentu yang memuat isi file.

Perintah ls memiliki cara untuk menyatakan informasi ini. Hal ini dipanggil dengan opsi “-i” :

ls -li

output

5210300 drwxrwxr-x 2 linux linux 4096 Sep 23 09:40 dir1
5210301 drwxrwxr-x 2 linux linux 4096 Sep 23 09:40 dir2
5113718 -rw-r–r– 2 linux linux 2090 Sep 23 09:47 passwd
5113718 -rw-r–r– 2 linux linux 2090 Sep 23 09:47 passwd-hard

Dalam versi ini daftar, field pertama adalah jumlah inode dan, seperti yang kita bisa lihat, keduanya passwd dan passwd-hard berbagi nomor inode yang sama, yang menegaskan mereka adalah file yang sama.

Membuat Symbolic Links

Link simbolik diciptakan untuk mengatasi dua kelemahan dari hard link: hard link tidak dapat menjangkau perangkat fisik dan hard link tidak dapat mereferensi direktori, hanya file. Symbolic link adalah jenis khusus dari file yang berisi pointer teks ke file target atau direktori. Membuat link simbolik mirip dengan menciptakan hard link:

ln -s passwd passwd-sym

ln -s ../passwd dir1/passwd-sym

ln -s ../passwd dir2/passwd-sym

Contoh pertama adalah cukup sederhana, kita hanya menambahkan opsi “-s” untuk membuat link simbolis daripada hard link. Bagaimana dengan dua perinta berikutnya? Ingat, ketika kita membuat link simbolik, kita membuat suatu deskripsi teks dari mana file target relatif terhadap link simbolik. Lebih mudah untuk melihat jika kita melihat output ls:

ls -l dir1

output:

lrwxrwxrwx 1 linux linux    9 Sep 23 10:04 passwd-sym -> ../passwd

Daftar untuk passwd-sym dalam dir1 menunjukkan bahwa itu link simbolik diawali dengan “l” pada kolom pertama dan itu menunjuk kepada “../passwd”, yang benar. Sehubungan dengan lokasi passwd-sym, passwd berada di direktori di atasnya. Perhatikan juga, bahwa panjang dari file symbolic link adalah 9, jumlah karakter dalam string “../passwd”.

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: