Sering kali di Sistem Operasi berbasis Linux/Unix adalah bijaksana untuk memahami konsep yang mendasarinya, maka hanya satu yang dapat menghargai keindahan perintah dan bagaimana implementasinya.
Beberapa detail kecil akan banyak membantu kita dalam men-debug dan memecahkan masalah banyak situasi yang menantang jika kita mengetahui dengan baik sebelumnya tentang perintah ini dan konsep terkait.
Dalam topik ini, saya akan membahas apa itu tautan, jenis yang berbeda, karakter pembeda dan bagaimana mereka dapat digunakan dengan lebih baik bersama dengan konsep yang diperlukan.
Dengan menjalankan perintah “man ln” Anda dapat melihat bahwa ini mengatakan “buat tautan antar file” dan tidak mengatakan tentang tautan lunak atau keras.
[email protected] ~}$ man ln
Demikian pula perintah "man link" menggambarkan sebagai "fungsi panggilan link untuk membuat file".
Tautan lunak :
Tautan lunak seperti namanya adalah tautan baru yang dibuat ke file baru. Dalam hal ini nomor inode file baru akan menunjuk ke file lama.
Tautan Keras :
Dalam hal ini file lama dan baru keduanya akan menunjuk ke nomor inode yang sama.
Tautan Simbolik :
Dalam beberapa rasa Unix/Linux, tautan simbolik dan tautan lunak diperlakukan sama. Tetapi perbedaan sebenarnya adalah bahwa nomor inode file baru dan lama akan menunjuk ke nomor inode baru. Ini akan sepenuhnya tergantung pada implementasinya.
Catatan 1 :- Dalam banyak kasus, istilah simbolik dan istilah tautan lunak digunakan secara bergantian. Tapi kita harus sadar kapan harus menggunakan apa.
Penggunaan perintah “ln” untuk membuat tautan keras dan tautan lunak
Membuat Tautan Keras
1) Perintah “man ln” akan memberikan output berikut.
[email protected] ~}$ man ln ln - make links between files
2) Ketika perintah "ln" dilewatkan tanpa argumen apa pun, kesalahan "operan file yang hilang" akan muncul.
[email protected] ~}$ln ln: missing file operand Try 'ln --help' for more information.
3) Membuat tautan keras antara dua file. Pertama periksa file yang ada jika ada, jika tidak buat file/file baru dan kemudian tautkan. Berikut adalah pendekatan langkah demi langkah,
[email protected] ~}$ ls -la total 24 drwx------ 4 root root 4096 Feb 6 15:23 . drwxr-xr-x 23 root root 4096 Jan 25 16:39 .. -rw-r--r-- 1 root root 3122 Jan 25 16:41 .bashrc drwx------ 2 root root 4096 Feb 6 15:23 .cache -rw-r--r-- 1 root root 0 Jan 25 16:41 .hushlogin -rw-r--r-- 1 root root 148 Aug 17 2015 .profile drwxr-xr-x 2 root root 4096 Jan 25 16:41 .ssh
i) Buat file menggunakan perintah “sentuh”
[email protected] ~}$ touch 123.txt [email protected] ~}$ ls -l total 0 -rw-r--r-- 1 root root 0 Feb 6 15:51 123.txt
ii) Masukkan konten ke dalam file menggunakan perintah “cat”, dan tekan “ctrl+c” untuk menyimpan dan keluar.
[email protected] ~}$ cat > 123.txt Welcome to this World! ^C
iii) Buat tautan keras antara file "123.txt" dan "321.txt". Dalam hal ini “123.txt” sudah ada dengan isi “Welcome to this World”.
[email protected] ~}$ ln 123.txt 321.txt [email protected] ~}$ ls -l total 8 -rw-r--r-- 2 root root 23 Feb 6 15:52 123.txt -rw-r--r-- 2 root root 23 Feb 6 15:52 321.txt
iv) Periksa nomor inode (node indeks) dari file. Untuk kedua file nomor inodenya sama yaitu 794583. Periksa juga isi file baru “321.txt” yang juga sama dengan “123.txt”.
[email protected] ~}$ ls -li total 8 794583 -rw-r--r-- 2 root root 23 Feb 6 15:52 123.txt 794583 -rw-r--r-- 2 root root 23 Feb 6 15:52 321.txt $ cat 321.txt Welcome to this World!
Catatan 2 :- Nomor inode adalah nomor indeks unik yang dihasilkan untuk file apa pun yang dibuat di sistem Operasi Linux/unix. Nomor inode ini disimpan dalam atribut direktori/file di direktori/proc. Tetapi jika ada tautan, nomor inode ini dibagikan dengan file dan hanya jalur yang diperbarui dalam tabel file.
v) Buat satu file lagi bernama "456.txt" dan tautkan ini menggunakan perintah ln ke "321.txt". Sekarang ketiga file tersebut memiliki nomor inode yang sama. Isi “456.txt” akan sama dengan file aslinya.
[email protected] ~}$ ls -li total 12 794583 -rw-r--r-- 3 root root 23 Feb 6 15:52 123.txt 794583 -rw-r--r-- 3 root root 23 Feb 6 15:52 321.txt 794583 -rw-r--r-- 3 root root 23 Feb 6 15:52 456.txt $ cat 456.txt Welcome to this World! [email protected] ~}$ ls -l total 12 -rw-r--r-- 3 root root 23 Feb 6 15:52 123.txt -rw-r--r-- 3 root root 23 Feb 6 15:52 321.txt -rw-r--r-- 3 root root 23 Feb 6 15:52 456.txt
vi) Ketika file sumber atau salah satu file ini dihapus, itu tidak akan memengaruhi file lain. File sumber dapat dihapus menggunakan perintah "rm". Konten file lain juga tidak akan berdampak apa pun.
[email protected] ~}$ rm 123.txt [email protected] ~}$ ls -l total 8 -rw-r--r-- 2 root root 23 Feb 6 15:52 321.txt -rw-r--r-- 2 root root 23 Feb 6 15:52 456.txt [email protected] ~}$ ls -li total 8 794583 -rw-r--r-- 2 root root 23 Feb 6 15:52 321.txt 794583 -rw-r--r-- 2 root root 23 Feb 6 15:52 456.txt [email protected] ~}$ cat 456.txt Welcome to this World!
vii) Pembuatan tautan keras di seluruh direktori tidak diperbolehkan.
[email protected] ~}$ls -l total 8 -rw-r--r-- 2 root root 23 Feb 6 15:52 321.txt -rw-r--r-- 2 root root 23 Feb 6 15:52 456.txt [email protected] ~}$ mkdir abc [email protected] ~}$ ln abc def ln: abc: hard link not allowed for directory
viii) Setiap perubahan pada konten satu file akan berdampak dan mengubah konten file lainnya, berikut adalah langkah-langkah yang dijelaskan,
[email protected] ~}$ vi 321.txt Welcome to this World! You are welcomed to this new world :wq [email protected] ~}$ ls -l total 12 -rw-r--r-- 2 root root 59 Feb 6 16:24 321.txt -rw-r--r-- 2 root root 59 Feb 6 16:24 456.txt drwxr-xr-x 2 root root 4096 Feb 6 16:18 abc [email protected] ~}$ cat 456.txt Welcome to this World! You are welcomed to this new world
Membuat Tautan Lunak:
1) Buat file “src.txt” menggunakan perintah “touch” dan masukkan konten sebagai “Hello World” menggunakan perintah cat lalu tekan “ctrl+c” untuk menyimpan dan keluar.
[email protected] ~}$ touch src.txt [email protected] ~}$ cat > src.txt Hello World ^C [email protected] ~}$ ls -l total 4 -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt
2) Buat file tujuan sebagai "dst.txt" dan menggunakan opsi baris perintah "ln -s" buat tautan simbolik (juga disebut sebagai tautan lunak). Periksa isi file “dst.txt” dan isi yang sama dengan “src.txt” dapat dilihat.
[email protected] ~}$ ln -s src.txt dst.txt [email protected] ~}$ ls -l total 4 lrwxrwxrwx 1 root root 7 Feb 6 16:33 dst.txt -> src.txt -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt [email protected] ~}$ cat dst.txt Hello World
3) Dalam hal tautan simbolik, nomor inode file sumber dan file tujuan berbeda. Juga, dalam surat izin "l" muncul yang menunjukkan bahwa ini adalah tautan. “dst.txt–>src.txt” akan menjadi tautan baru yang dibuat sekarang.
[email protected] ~}$ ls -li total 4 794584 lrwxrwxrwx 1 root root 7 Feb 6 16:33 dst.txt -> src.txt 794583 -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt
4) Penciptaan simbolis untuk direktori diperbolehkan. Ini dijelaskan seperti di bawah ini dalam langkah-langkah
[email protected] ~}$ mkdir abc [email protected] ~}$ ln -s abc def $ ls -l total 8 drwxr-xr-x 2 root root 4096 Feb 6 16:34 abc lrwxrwxrwx 1 root root 3 Feb 6 16:34 def -> abc lrwxrwxrwx 1 root root 7 Feb 6 16:33 dst.txt -> src.txt -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt
5) Nomor inode untuk semua file/direktori (sumber dan tujuan berbeda)
[email protected] ~}$ ls -li total 8 794585 drwxr-xr-x 2 root root 4096 Feb 6 16:34 abc 794586 lrwxrwxrwx 1 root root 3 Feb 6 16:34 def -> abc 794584 lrwxrwxrwx 1 root root 7 Feb 6 16:33 dst.txt -> src.txt 794583 -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt
6) Tautan simbolis dapat dibuat untuk direktori seperti yang dijelaskan sebelumnya. Setelah direktori ini dengan tautan simbolik dibuat, di dalam direktori ini file dapat dibuat. Ini akan membuatnya lebih menarik untuk mengetahui bagaimana perilakunya sekarang. Ketika file dibuat di direktori sumber, hal yang sama juga terlihat di direktori tujuan. Langkah-langkah berikut menjelaskan hal ini dengan jelas.
[email protected] ~}$ $ cd abc [email protected] ~}$ touch 123.txt [email protected] ~}$ vi 123.txt Hello :wq! [email protected] ~}$ touch 456.txt [email protected] ~}$ cd .. [email protected] ~}$ ls -l total 8 drwxr-xr-x 2 root root 4096 Feb 6 16:36 abc lrwxrwxrwx 1 root root 3 Feb 6 16:34 def -> abc lrwxrwxrwx 1 root root 7 Feb 6 16:33 dst.txt -> src.txt -rw-r--r-- 1 root root 12 Feb 6 16:32 src.txt [email protected] ~}$ cd def [email protected] ~}$ ls -l total 4 -rw-r--r-- 1 root root 6 Feb 6 16:37 123.txt -rw-r--r-- 1 root root 0 Feb 6 16:36 456.txt [email protected] ~}$ cat 123.txt Hello
Catatan 3 :- Kami dapat memiliki sejumlah tautan bersarang. Namun pengguna/admin yang membuat link simbolis ini harus menyadari fakta bahwa ini akan menyebabkan kebingungan. Terkadang mungkin dilupakan dan dapat membuat hasil yang tidak diinginkan. Jadi mereka harus berhati-hati.
Catatan 4 :- Ada beberapa kemungkinan tautan "simbolis" atau "lunak" yang menunjuk ke tautan yang tidak ada. Ini disebut sebagai "Link Menggantung". Ini tidak akan menunjuk ke mana-mana.
Catatan 5 :- ada panggilan sistem yang digunakan di linux/unix untuk membuat tautan keras ATAU simbolik di tingkat pemrograman (menggunakan program C/C++ tingkat sistem). Ini adalah 1) symlink 2) symlinkat.
Ini tidak boleh disamakan dengan utilitas baris perintah yang telah saya jelaskan di atas.
Menghapus Soft Link / Symbolic Links
Tautan lunak atau simbolis dihapus menggunakan perintah 'rm' dan batalkan tautan.
Sintaks:
# rm
# batalkan tautan
Menghapus direktori Soft Link
Sintaks:
# rm
# batalkan tautan
Kesimpulan:
Membuat link baik hard maupun soft akan sangat membantu admin dan developer. Materi referensi di atas akan berguna saat memahami jenis tautan apa yang kami buat dan bagaimana hal itu membantu. Juga artikel ini akan membantu dalam memahami perbedaan dan penggunaan tautan.