Belajar dengan membaca secara berurutan

Symbolic Link dan Hard Link — ln

Buat symbolic link yang menyimpan sebuah path dengan ln -s target.txt link.txt lalu konfirmasi tanda -> di ls -l, kemudian buat hard link ke isi data yang sama dengan ln base.txt hard.txt; lihat perbedaannya lewat diagram dan terminal browser.

Symbolic Link — ln -s

Sebuah link membuat kamu bisa menjangkau file yang sama lewat nama berbeda. Kamu membuat symbolic link (tautan simbolik) dengan ln -s target name, dan ini adalah file khusus yang menyimpan path (lokasi) dari target. Saat kamu membuka name, ia otomatis mengikuti path yang tersimpan menuju target. Di ls -l, baris link tersebut menampilkan ke mana ia mengarah, sebagai name -> target.

SintaksEfek
ln -s target name-s (symbolic) membuat symbolic link yang merupakan alias berbasis path
ls -lCek ke mana ia mengarah lewat tampilan name -> target
ln target aliasMembuat hard link yang menunjuk ke isi data yang sama
Symbolic vs hardSymbolic = file khusus yang menyimpan path target / Hard = alias ke isi data yang sama
Saat target dihapusSymbolic = kehilangan targetnya dan rusak / Hard = isinya tetap ada
Cara Kerja Symbolic Link — ln -s
target.txtisi: "data"link.txt (file khusus)menyimpan path "target.txt"outputlink.txt -> target.txtoutput: "data"ikuti path ke file asliln -s target.txt link.txtls -lcat link.txt
ln -s membuat link.txt, sebuah file khusus yang menyimpan path target.txt. ls -l menampilkannya sebagai link.txt -> target.txt, dan cat link.txt mengikuti path tersebut untuk membaca isi file asli target.txt.
printf 'data\n' > target.txt   # Buat file target
ln -s target.txt link.txt     # Buat symbolic link
ls -l                         # Cek link.txt -> target.txt
cat link.txt                  # Menampilkan isi target.txt

① Buat file target dengan printf 'data\n' > target.txt.

② Tambahkan opsi yang membuat ln menghasilkan symbolic link, lalu berikan target dan nama baru dengan urutan itu untuk membuat link.txt.

③ Jalankan ls -l dan cek bahwa target link muncul sebagai link.txt -> target.txt. (Saat kamu menjalankannya dengan benar, penjelasan akan muncul.)

Linux console
0 / 3 selesai
Loading Linux Terminal...

Hard Link — ln

Tanpa -s, ln target alias membuat hard link. Sementara symbolic link adalah file khusus yang menyimpan path ke target, hard link (tautan keras) adalah nama lain yang menunjuk ke isi data yang sama. Membuka nama mana pun memberikan isi yang identik, dan di ls -l hard link tidak menampilkan tanda panah — terlihat seperti file biasa. Ingat bedanya: symbolic = file khusus yang menyimpan path target, hard = alias ke isi data yang sama.

Perbedaan Cara Kerja Symbolic dan Hard Link
base.txtisi data "shared"symisi = path "base.txt"hardalias ke isi data yang samaoutput: "shared"dibaca lewat pathoutput: "shared"baca isi data langsungln -s base.txt symln base.txt hardcat symcat hardkeduanya membaca "shared"
ln -s membuat sym, yang menyimpan path ke file asli, sedangkan ln membuat hard, alias ke isi data yang sama. Keduanya mencetak shared dengan cat, tetapi sym membaca lewat path dan hard membaca isi data secara langsung.
printf 'shared\n' > base.txt   # Buat file target
ln base.txt hard.txt          # Buat hard link
ls -l                         # hard.txt tampil tanpa tanda panah
cat hard.txt                  # Menampilkan isi yang sama dengan base.txt

① Buat file target dengan printf 'shared\n' > base.txt.

② Pakai ln tanpa opsi, dengan memberikan target dan alias dengan urutan itu, untuk membuat hard link bernama hard.txt.

③ Jalankan ls -l dan cek bahwa hard.txt tampil seperti file biasa, tanpa tanda panah (->).

Linux console
0 / 3 selesai
Loading Linux Terminal...

Apa yang Terjadi Saat Kamu Menghapus Target

Karena symbolic link adalah file khusus yang menyimpan path ke target, ia kehilangan apa yang ditunjuknya begitu target hilang. Karena hard link adalah nama lain yang menunjuk ke isi data yang sama, isinya tetap ada bahkan setelah nama aslinya hilang. Hapus targetnya dan lihat sendiri perbedaannya.

Apa yang Terjadi pada Tiap Link Saat Target Dihapus
orig.txtisi data "v"sl.txtisi = path "orig.txt"hl.txtalias ke isi data yang samagagal: link menggantungNo such filemencetak "v"isi data tetap adaln -s orig.txt sl.txtln orig.txt hl.txtcat sl.txtcat hl.txtsetelah rm orig.txt
Setelah rm orig.txt menghapus file asli, sl.txt, yang hanya menyimpan path, menjadi link menggantung (dangling), sedangkan hl.txt, yang berbagi isi data, masih mencetak isinya dengan cat.
printf 'v\n' > orig.txt       # Buat file target
ln -s orig.txt sl.txt         # Symbolic link
ln orig.txt hl.txt            # Hard link
rm orig.txt                   # Hapus target
cat sl.txt                    # Kehilangan targetnya dan gagal
cat hl.txt                    # Isinya tetap ada dan bisa ditampilkan

① Buat target dengan printf 'v\n' > orig.txt.

② Buat symbolic link dengan ln -s orig.txt sl.txt dan hard link dengan ln orig.txt hl.txt.

③ Hapus target dengan rm orig.txt.

④ Jalankan cat sl.txt dan cat hl.txt lalu bandingkan perbedaan hasilnya.

⑤ Jalankan ls -l dan cek bagaimana kedua link itu terlihat di ls -l setelah penghapusan.

Linux console
0 / 7 selesai
Loading Linux Terminal...
QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Bagaimana tampilannya di ls -l setelah kamu menjalankan ln -s target.txt link.txt?

Soal 2Mana dari berikut yang dengan benar menjelaskan perbedaan antara symbolic dan hard link?

Soal 3Setelah kamu menghapus file target dengan rm, untuk yang mana cat masih berhasil?