Hard Link ve Soft Link'in Farkı Nedir?
Soft link silinirse gerçek dosya silinmez.
Hard link aynı dosya sistemi üzerinde oluşturulur! Soft link ise farklı dosya sistemindeki bir dosya için oluşturulabilir.
Kabuktan Hard Link Oluşturma
Windows
mklink komutu ile yapılıyor
mklink /H new.file original.file
Linux
ln komutu ile yapılıyor. Windows'takinin tersi gibi düşünülebilir. Önce mevcut dosya sonra yeni dosya yazılır.
ln original.file new.file
API Kullanarak Hard Link Oluşturma
POSIX
Posix
Şöyle yaparız.
Java
Hard link sayısının hakkında bilgi almak için Linux Dosya Distemi başlıklı yazıya göz atabilirsiniz.
Files.getAttribute metodu ile bilgiye erişmek mümkün.
java.nio.file.Files.getAttribute(path, "unix:nlink")
--------------------------------------------------------------------------------------
Kabuktan Soft Link Oluşturma
Soft link hiç bir yere işaret etmeyebilir (dangling softlink). Bazı softlink dosyaları bilgi içerirler ve silinmeleri doğru olmayabilir.
Windows
Dizine junction point oluşturabilir. Junction point sadece iki dosya aynı diskte ise işe yarar. Uzak diskteki dosyaya soft link oluşturmak gerekir.
Linux
Hard link komutu ile aynı. Sadece -s seçeneği kullanılıyor
ln -s original.file new.file
Kabuktan Soft Linki Takip Etme
Örnekte Java'nın kurulum yerini readlink -f ile bulunuyor.
Dosyanın Sembolik Link Olup Olmadığını Kontrol Etme
Java
Java7 ile gelen Files.isSymbolicLink() kullanılabilir.
Apache Commons
FileUtils.isSymlink() kullanılabilir. Yalnız bu metod Windows'ta çalışmıyor sanırım.
API Kullanarak Sembolik Link Oluşturma
POSIX
Soft link silinirse gerçek dosya silinmez.
Hard link aynı dosya sistemi üzerinde oluşturulur! Soft link ise farklı dosya sistemindeki bir dosya için oluşturulabilir.
Kabuktan Hard Link Oluşturma
Windows
mklink komutu ile yapılıyor
mklink /H new.file original.file
Linux
ln komutu ile yapılıyor. Windows'takinin tersi gibi düşünülebilir. Önce mevcut dosya sonra yeni dosya yazılır.
ln original.file new.file
API Kullanarak Hard Link Oluşturma
POSIX
int link (const char *oldname, const char *newname);Dosyaya Hard Link Sayısını Öğrenme
Posix
Şöyle yaparız.
struct stat st;
if (stat(".."", &st) != -1)
printf("%d hard links\n", st.st_nlink);
Java
Hard link sayısının hakkında bilgi almak için Linux Dosya Distemi başlıklı yazıya göz atabilirsiniz.
Files.getAttribute metodu ile bilgiye erişmek mümkün.
java.nio.file.Files.getAttribute(path, "unix:nlink")
--------------------------------------------------------------------------------------
Kabuktan Soft Link Oluşturma
Soft link hiç bir yere işaret etmeyebilir (dangling softlink). Bazı softlink dosyaları bilgi içerirler ve silinmeleri doğru olmayabilir.
Windows
Dizine junction point oluşturabilir. Junction point sadece iki dosya aynı diskte ise işe yarar. Uzak diskteki dosyaya soft link oluşturmak gerekir.
mklink /j NewFolder OriginalFolder
Linux
Hard link komutu ile aynı. Sadece -s seçeneği kullanılıyor
ln -s original.file new.file
Kabuktan Soft Linki Takip Etme
Örnekte Java'nın kurulum yerini readlink -f ile bulunuyor.
[980@b449 ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java
Dosyanın Sembolik Link Olup Olmadığını Kontrol Etme
Java
Java7 ile gelen Files.isSymbolicLink() kullanılabilir.
Apache Commons
FileUtils.isSymlink() kullanılabilir. Yalnız bu metod Windows'ta çalışmıyor sanırım.
POSIX
int symlink (const char *oldname, const char *newname);
Hiç yorum yok:
Yorum Gönder