Dosyanın takma adı mı yoksa sembolik bağlantısı mı olduğunu nasıl öğrenebilirim?


13

Eski bir sistem üzerinde çalışıyorum ve diğer klasörlerde bulunan görüntüler referans dosyaları bir sürü var.

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x133.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x133.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t125x150.jpg -> /home/www/virtual/categories/swm/24/m/00012/t125x150.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t150x200.jpg -> /home/www/virtual/categories/swm/24/m/00012/t150x200.jpg

Bunların sembolik bağlantılar mı yoksa takma adlar mı olduğunu nasıl bilebilirim?


3
Sembolik bağlantı, başka bir dosyaya başvuran bir dosya girdisidir. Linux'ta bir takma ad bir komut sözdizimi değişimidir. Takma adla ne demek istiyorsun? Yoksa hangi dosyaların sembolik bağlantı olduğunu nasıl belirleyeceğinizi mi soruyorsunuz? find folder -type l'sembol' altındaki tüm sembolik bağlantıları listeleyecektir.
StarNamer

Mac OS X Finder'daki takma adlar mı yoksa kabuk komut takma adları mı soruyorsunuz?
Daniel Beck

Sanırım biraz kafam karışmıştı. Söz konusu dosyalar sadece sembolik bir bağlantıydı ve sanırım Os X Finder takma adları ile kafa karıştırıyordum.
Martin

Yanıtlar:


16

Sembolik bağlantılar:

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
^
 ` Here it is, l for symbolic link.

Dosyalarınız sabit bağlantılar ise, diğer dosyalar gibi görünürler. Örneğin, her dizinde .sabit bağlantılı bir dizin bulunur .

Gönderen $ man find:

Normal bir Unix dosya sistemindeki her dizinin en az 2 sabit bağlantısı vardır: adı ve .' entry. Additionally, its subdirectories (if any) each have abu dizine bağlı .. 'girişi.

Sabit bağlantılar:

-rw-r--r--  3 root root   60 2012-06-25 12:17 File
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile2
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
            ^
             ` This number is hard link (reference) count.

11

fileVeya statkomutlar bir dosya ne olduğunu söyleyecektir:

$ ln -s /home this_is_a_link
$ touch this_is_not_a_link
$ file this_*
this_is_a_link:     symbolic link to `/home'
this_is_not_a_link: empty
$ stat this_*
  File: `this_is_a_link' -> `/home'
  Size: 5               Blocks: 0          IO Block: 4096   symbolic link
Device: ca00h/51712d    Inode: 106983      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:17.000000000 +0000
Modify: 2012-07-29 23:28:17.000000000 +0000
Change: 2012-07-29 23:28:17.000000000 +0000
  File: `this_is_not_a_link'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: ca00h/51712d    Inode: 106992      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:27.000000000 +0000
Modify: 2012-07-29 23:28:27.000000000 +0000
Change: 2012-07-29 23:28:27.000000000 +0000

testKomut dosyası kullanılıyorsa, komut daha faydalı olabilir:

   -h FILE
         FILE exists and is a symbolic link (same as -L)
$ for f in this_*; do if test -h "$f"; then echo "$f is a symlink"; else echo "$f is not a symlink"; fi; done
this_is_a_link is a symlink
this_is_not_a_link is not a symlink
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.