Apakah Windows mengenali tautan simbolis Linux?

14

Saya hanya ingin tahu bagaimana sistem Windows menangani tautan simbolik. Dugaan terbaik saya adalah bahwa itu tidak akan mengenali mereka, tetapi saya tidak sepenuhnya yakin.

Juga, apa yang dilakukan Mac ketika dihadapkan oleh satu?

JamesTheAwesome Bung
sumber
1
Bagaimana Anda berencana untuk mengekspos Windows ke tautan simbolis? Ia tidak memahami sistem file yang mendukungnya (kecuali NTFS, yang memiliki sesuatu yang tidak sepenuhnya berbeda dengan tautan simbolis yang sebagian besar disembunyikan dari UI).
Gilles 'SO- stop being evil'
Oh .. jadi apa yang terjadi jika Anda telah memasang partisi Windows Anda, dan Anda mencoba untuk meletakkan tautan simbolis di dalamnya? Apakah hanya berfungsi seolah-olah itu folder? (Jika demikian, saya ingin tahu apa yang terjadi dengan RECURSION ...)
JamesTheAwesomeDude
bisakah Anda membantu saya dalam hal ini: stackoverflow.com/questions/21403772/…
Goofy

Jawaban:

10

Tergantung pada versi Windows dan konfigurasi sisi server ketika kita berbicara tentang disk non-lokal.

Sejak Windows Vista, Windows memang memiliki gagasan tentang tautan simbolik, tetapi semantiknya berbeda. Tetapi masalah yang lebih penting di sini adalah nama path, yang mengikuti sintaks yang berbeda. Sebagai permulaan: pohon direktori berakar tunggal di sisi unixoid dan beberapa huruf drive sebagai root di sisi Windows.

Di sisi unixoid, symlink hanyalah file teks dengan flag khusus. Di sisi Windows mekanisme yang mendasarinya disebut titik reparse. Ini memberi tahu manajer objek untuk meneruskannya ke filter terdaftar tertentu (tanggal meta untuk ini disimpan dalam titik reparse). Windows 2000 sudah memperkenalkan satu jenis titik reparasi yang dikenal sebagai titik persimpangan (kira-kira, tetapi tidak cukup, symlink direktori). Dengan Vista mereka memperkenalkan symlink ke file dan direktori, juga pada drive jarak jauh. Dan symlink pada drive jarak jauh juga didukung sampai batas tertentu.

Poin utama adalah apakah driver sistem file - ketika dijalankan secara lokal - akan melakukan penyesuaian pada jalur yang dapat dilihat Windows. Dalam kasus seperti itu akan berfungsi untuk symlink lokal / relatif tertentu. Untuk jalur absolut sebagai target, segala sesuatu akan menjadi sulit dan tidak mungkin untuk menyimpulkan apa yang dimaksud. Sama untuk tautan symlink jarak jauh (ke "berbagi jaringan").

Sedangkan untuk sisi Mac saya tidak tahu dan mungkin masuk akal sebagai pertanyaan terpisah. Tetapi selama sisi server menyampaikan informasi bahwa ini adalah symlink, saya tidak melihat masalah, karena mereka berdua mengikuti semantik SUS (tidak seperti Windows).


Pertimbangkan poin pemasangan sisi Linux:

/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var

Dan sekarang pertimbangkan symlink /home/paul/fstabmenunjuk ke /etc/fstab. Mereka terletak pada dua volume berbeda yang Windows - jika dapat melihatnya melalui driver sistem file (yang bekerja!) - tidak bisa mengatakan milik bersama cara /etc/fstabmenggambarkannya. Jadi tautan, yang akan dilihat Windows di bawah folder \paul\fstab, meskipun diterjemahkan, akan mengarah ke \etc\fstab, yang tidak ada di sana /dev/sda2. Dan jika symlink itu akan menunjuk ke jalur relatif ../../etc/fstabsegalanya tidak akan berubah sama sekali.


Intinya: Jadi, sementara ini bisa dibayangkan bahwa Anda bisa membuat ini bekerja untuk beberapa kasus sudut, fakta bahwa semantik dan sintaks berbeda di kedua sisi pagar membuatnya tidak mungkin bahwa Anda akan menemukan metode praktis dan generik yang berfungsi.

0xC0000022L
sumber
2
Wow, ini jawaban yang sangat terperinci dan menyeluruh! Terima kasih telah memberikan semua informasi ini! Saya sebenarnya tidak tahu bahwa symlink Linux berbasis teks. Sekali lagi terima kasih atas semua informasi yang bermanfaat di sini.
JamesTheAwesomeDude
bisakah Anda membantu saya dalam hal ini: stackoverflow.com/questions/21403772/…
Goofy
Saya pikir saya telah melakukan sym-link di XP, apakah Anda yakin vista adalah yang pertama?
ctrl-alt-delor
ntfsmendukung titik pemasangan (karena jika Anda tidak menyukai semua surat itu).
ctrl-alt-delor
@ Richard: sebenarnya volume mount point adalah istilah teknis untuk apa yang Anda lihat sebagai huruf drive di subsistem Win32. Namun, Anda benar dalam arti bahwa titik pemasangan volume juga dapat diatur pada folder yang ada (yang sangat mirip dengan titik persimpangan). Fitur teknis yang digunakan untuk mengimplementasikan titik pemasangan volume, titik persimpangan, dan tautan simbolik disebut titik reparse . Dan ya, Vista adalah yang pertama memiliki dukungan tautan simbolik. Pada XP Anda bisa melakukannya hanya di subsistem lain (misalnya POSIX) yang, bagaimanapun, memiliki semantik yang berbeda, seperti di atas.
0xC0000022L
2

Jawaban 0xC0000022L menyeluruh untuk sisi Windows. Mac dapat mengenali symlinks Linux; namun Linux tidak dapat mengenali alias yang dibuat di Finder Mac (symlink dibuat menggunakan ln -s berfungsi dengan baik).

siapa tahu
sumber
terdengar seperti alias adalah mitra OSX untuk pintasan di Windows ( .lnkfile).
0xC0000022L