Apakah tautan simbolis / lunak mirip dengan pintasan / alias di desktop?

19

Bagi saya, ide dasar tautan lunak / simbolik dibandingkan dengan pintasan (pada PC) atau alias (pada Mac) adalah hal yang sama. Apakah saya jauh? Apakah mereka serupa?

Marty
sumber

Jawaban:

14

Ide dasarnya hampir sama. Tautan simbolik adalah file khusus yang berisi jalur (relatif atau absolut) ke objek sistem file lain. Di UNIX / Linux, OS itu sendiri memproses tautan simbolik, menyelesaikan ke objek nyata secara transparan.

Pada Mac, alias yang tampaknya merupakan konstruk Finder khusus dapat merujuk objek jarak jauh maupun lokal, tetapi Finder menyelesaikan referensi, bukan OS. MacOS X juga memiliki tautan simbolik, tetapi keduanya terpisah dari alias.

Perbedaan besar adalah antara pintasan Windows dan tautan simbolik. Jalan pintas Windows tidak dapat dengan mudah mengganti program karena Windows selalu harus memiliki ekstensi file sial ini dan file "lnk" tidak dapat dieksekusi ketika datang ke Windows. Di dalam GUI, ia berfungsi, tetapi dari sudut pandang server, ia berhasil. Sama dengan direktori. Mereka berguna, tetapi tidak memiliki kekuatan dan fleksibilitas tautan simbolik.

Arcege
sumber
"Sama dengan direktori": Apakah maksud Anda seseorang tidak dapat melakukan cd dalam symlink yang menunjuk ke direktori?
dash17291
2
Berarti Anda tidak dapat melakukan cd ke pintasan pada sistem Windows karena ini adalah konstruk Windows, bukan DOS. Dengan UNIX / Linux, ini adalah konstruksi sistem file, sehingga ia akan bekerja di mana saja, termasuk cdperintah - terserah pada perintah untuk menafsirkan titik akhir, bukan OS. Sebagai contoh, cdbisa menggunakan symlink ke direktori, tetapi itu akan gagal pada symlink ke file biasa.
Arcege
7

Tidak juga. Ada kemiripan, tetapi hanya sampai titik tertentu. Saya tahu orang-orang berpikir "ok, symlink seperti pintasan, tapi saya tidak mengerti mereka" sampai pada titik ketika mereka berkata "oh, sebenarnya symlink tidak seperti pintasan, dan sekarang saya memahaminya". Jadi saya pikir pintasan bukan cara yang baik untuk memahami tautan simbolik dan saya sarankan untuk menjernihkan pikiran Anda tentang perbandingan dengan pintasan.

Tautan simbolis menunjukkan nama file lain. Itu "nama" seperti dalam path lengkap, yaitu berpotensi termasuk bagian direktori serta nama di dalam direktori. Path bisa absolut ( /foo/bar) atau relatif ( foo/baratau ../baratau adil bar); jika target diberikan oleh jalur relatif, itu ditafsirkan relatif ke direktori yang berisi tautan simbolik. File target mungkin ada atau tidak ada, dan menghapus, memindahkan, atau membuat file target tidak akan memengaruhi tautan simbolik.

Operasi yang bertindak atas konten file bertindak pada file target. Jadi ketika Anda membaca atau menulis ke file melalui tautan simbolik, atau menjalankan program melalui tautan simbolik, seolah-olah Anda sedang mengakses file target. Operasi yang bertindak pada file dari luar, seperti mengubah nama atau menghapus, bertindak pada tautan simbolik itu sendiri. Perhatikan bahwa untuk menulis, ada bedanya apakah Anda menimpa file yang ada (yang akan bertindak sesuai target) atau menghapus file yang ada dan membuat file baru (yang akan membuat target tetap utuh dan membuat file baru menggantikan symlink, kecuali aplikasi berhati-hati mengikuti tautan (banyak yang melakukannya)).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Tautan simbolik tidak selalu merupakan lintasan lengkap: pada sistem Slackware 13.1 saya, /usr/lib/libXv.so adalah tautan simbolik ke libXv.so.1.0.0. Tidak ada jalur penuh di sana.
Bruce Ediger