Apa perbedaan antara Tautan Simbolik dan Pintasan?
Apa perbedaan antara Tautan Simbolik dan Pintasan?
Jawaban:
Saya pikir poin penting adalah bahwa pintasan hanyalah sebuah file. Mereka memiliki ukuran (Yang kecil, yang hanya referensi di mana mereka menunjuk) dan mereka membutuhkan aplikasi untuk mendukung tipe file agar dapat digunakan.
Tautan simbolis adalah level sistem file, dan semuanya melihatnya sebagai file asli. Aplikasi tidak memerlukan dukungan khusus untuk menggunakan tautan simbolik.
find
, tar
, du
, dll) yang perlu tahu tentang link simbolik atau mereka dapat melakukan beberapa hal yang sangat bodoh. Misalnya menyilaukan tautan simbolis berikut ini dapat membuat siklus di sistem file, dan itu buruk .
"Tautan Simbolik" sebenarnya dapat bertindak seperti pengganti direktori atau file dengan cara fungsional, dan biasanya digunakan di lingkungan Unix / Linux. Meskipun tampaknya ada dukungan untuk ini di Windows, saya belum melihat penggunaannya yang sebenarnya.
"Pintasan" hanyalah file biasa yang memiliki referensi ke file tujuan atau direktori bersama dengan beberapa hal lain seperti ikon yang akan ditampilkan. Tidak seperti Symbolic Link, Anda tidak dapat "cd ./shortcut-name" di DOS (di Unix / Linux Anda dapat "cd ./symlink-name" dan itu akan berfungsi seperti sub-direktori nyata).
Juga, di sebagian besar aplikasi Windows, ketika Anda mengklik Shortcut dalam dialog File-> Open GUI apa pun, bidang nama file Anda akan terisi dengan nama file pintasan itu serta bertindak seperti sub-direktori, sedangkan di Unix / Linux GUI memperlakukan Link Simbolik sebagai jalur (tanpa memodifikasi bidang nama file).
Seperti yang disebutkan orang lain, tautan simbolik adalah salah satu jenis tautan yang tersedia di tingkat sistem file, yang membuatnya transparan untuk aplikasi. Saya menemukan dokumentasi ini sangat membantu (khususnya bagian "Potong / Buka Gulungan / Sambungan Luar Simbol / Simbol"). Dan alat di sana terlihat bagus juga. (Dengan menyebutkan ini, dan mklink, semoga lebih banyak pencarian akan menemukan diskusi ini.)
Pintasan adalah file, bukan tautan yang sebenarnya, dan umumnya hanya berhasil diikuti sebagai tautan ketika ditafsirkan oleh UI Windows (antarmuka pengguna). Misalnya, ketika Anda mengklik dua kali pada pintasan folder, Windows mengarahkan Anda ke lokasi lain. (Ini termasuk dialog File Open dan Save File generik yang dipanggil sebagian besar aplikasi.) Di desktop saya, saya memiliki jalan pintas ke folder ini: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ G
Nama file shorcut adalah: C: \ Users \ user5 \ Desktop \ Games.lnk, meskipun Windows menekan ekstensi .lnk dan hanya menampilkan "Games", bahkan jika Anda menghapus centang "sembunyikan ekstensi untuk tipe file yang dikenal". Tetapi jika Anda membuka command prompt dan melakukan dir, Anda akan melihatnya:
C:\Users\user5\Desktop>dir "g*"
Volume in drive C has no label.
Volume Serial Number is 900...
Directory of C:\Users\user5\Desktop
03/08/2014 05:30 PM 1,710 Games.lnk
1 File(s) 1,710 bytes
0 Dir(s) 246,818,222,080 bytes free
Saya dapat membuat yang setara dengan symlink dengan menggunakan opsi \ D (untuk direktori):
C:\Users\user5\Desktop>mklink /D mysymlink "C:\ProgramData\Microsoft\Windows\S
tart Menu\Programs\G"
symbolic link created for mysymlink <<===>> C:\ProgramData\Microsoft\Windows\Sta
rt Menu\Programs\G
C:\Users\user5\Desktop>cd mysymlink
C:\Users\user5\Desktop\mysymlink>
(Sambungan direktori (\ J) juga merupakan opsi, karena ini adalah tautan folder.) Windows explorer, seperti konsol ini dan sebagian besar aplikasi, akan memungkinkan Anda menelusuri "ke dalam" subdirektori yang jelas ini, daripada (a) mengarahkan ulang "menyeberang" ke lokasi yang berbeda atau (b) gagal.
Pintasan tidak berperilaku seperti subdirektori. Saya bisa menjalankan perilaku file default Windows UI dengan perintah ini (ini membuka folder "G" di Windows Explorer):
C:\Users\user5\Desktop>"Games.lnk"
Sedangkan mysymlink terdaftar (lihat hitungan) sebagai subdirektori sebenarnya dan tidak dapat diluncurkan dengan cara itu:
C:\Users\user5\Desktop>dir "my*"
Volume in drive C has no label.
Volume Serial Number is 900...
Directory of C:\Users\user5\Desktop
03/29/2014 06:08 PM <DIR> mysubdir
03/29/2014 05:40 PM <SYMLINKD> mysymlink [C:\ProgramData\Microsoft\Windo
ws\Start Menu\Programs\G]
0 File(s) 0 bytes
2 Dir(s) 246,816,153,600 bytes free
C:\Users\user57\Desktop>mysubdir
'mysubdir' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\user57\Desktop>mysymlink
'mysymlink' is not recognized as an internal or external command,
operable program or batch file.
Sebaliknya, Anda tidak dapat mengubah direktori menjadi pintasan:
C:\Users\user5\Desktop>cd "Games.lnk"
The directory name is invalid.
Windows UI memungkinkan Anda mengklik kanan untuk mengedit properti pintasan. Atau, berikut ini menunjukkan dengan tepat apa yang sebenarnya disimpan dalam file .lnk (data biner), meskipun hex editor akan menampilkan lebih baik:
C:\Users\user5\Desktop>notepad.exe "Games.lnk"
Sedangkan mencoba menjalankan Notepad pada subfolder yang sebenarnya muncul pesan kesalahan "Akses ditolak", dan Notepad kosong.
Sebaliknya, jika saya membuat file symlink (bukan folder symlink), saya dapat meluncurkannya dengan Notepad. Dari panggilan notepad.exe berikut, dua yang pertama berfungsi, dan yang ketiga gagal (ini membuka file .LNK, buku biner gobbled).
C:\Users\user5\Desktop>mklink symplain.txt plain.txt
symbolic link created for symplain.txt <<===>> plain.txt
C:\Users\user5\Desktop>notepad.exe "symplain.txt"
C:\Users\user5\Desktop>notepad.exe "plain.txt"
C:\Users\user5\Desktop>notepad.exe "plain.txt.lnk"
Ini bukan hanya masalah konsol. Menyalin pintasan ke Notepad ke desktop saya dan mencoba menyeret dan menjatuhkan masing-masing ketiganya, itu memperlihatkan perilaku yang sama persis. (Karena seret dan lepas, tidak seperti klik dua kali, memungkinkan aplikasi mengartikan pintasan.)
Mengenai perbedaan antara symlink dan persimpangan direktori, lihat diskusi ini , dan inilah deskripsi yang sangat membantu :
"Perbedaan utama dalam cara Windows menyelesaikan tautan simbolik dan persimpangan direktori adalah di mana pemrosesan berlangsung. Windows memproses tautan simbolik pada sistem lokal, bahkan ketika mereka merujuk lokasi pada server file jarak jauh. Windows memproses persimpangan direktori yang merujuk remote. Oleh karena itu, server file di server itu sendiri. Tautan simbolik pada server dapat merujuk ke lokasi yang hanya dapat diakses dari klien, seperti volume klien lainnya, sedangkan persimpangan direktori tidak bisa. Untuk mengatasinya, Windows Vista mendukung jenis tautan simbolik baru untuk kedua file. dan direktori.
"Banyak perintah sistem file telah diperbarui untuk memahami implikasi tautan simbolik. Misalnya, perintah Hapus tahu untuk tidak mengikuti tautan, yang akan mengakibatkan penghapusan target, tetapi untuk menghapus tautan. Namun, karena tidak semua aplikasi dapat menangani tautan simbolik dengan benar, membuat tautan simbolik memerlukan hak istimewa Buat Simbolik Link baru yang hanya dimiliki oleh administrator. "
"Tautan Simbolik berbeda dari Pintasan karena mereka menawarkan jalur * transparan ke objek data yang diinginkan, dengan pintasan (.lnk), sesuatu harus membaca dan menginterpretasikan isi dari file pintasan dan kemudian membuka file yang dirujuk (yaitu itu adalah proses dua langkah). Ketika suatu aplikasi menggunakan symlink, ia memperoleh akses langsung ke objek data yang dirujuk oleh symlink (yaitu itu adalah proses satu langkah). "
Sumber: http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
Terkadang ada baiknya untuk memiliki contoh fungsional, jadi jelaskan bagaimana saya menggunakan fungsi ini.
Saya menggunakan google drive untuk membuat cadangan file, tetapi kadang-kadang saya ingin membuat cadangan file dalam folder tertentu (saya tidak bisa memindahkannya ke ../google drive). Terutama dengan aplikasi universal windows 10, file konfigurasi dan semacamnya disimpan di appdata, dan sebagian besar waktu saya tidak dapat mengubah lokasi ini.
Saya menggunakan aplikasi stikynot windows asli, dan saya ingin membuat cadangan catatan saya, jadi saya menggunakan symlink di sini. Google drive mengenali tautan itu sebagai file aktual dan menyinkronkan file-file itu dengan baik, sementara file yang sebenarnya masih ada di folder appdata.
Ketika saya memiliki file seperti folder proyek secara lokal yang saya tidak ingin disinkronkan ke cloud saya menggunakan cara pintas (salin, past-> paste shortcut).