Bagaimana saya bisa tahu apakah file itu alias atau tautan simbolik?

13

Saya sedang mengerjakan sistem warisan dan saya memiliki banyak file yang mereferensikan gambar yang terletak di folder lain.

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

Bagaimana saya bisa tahu apakah ini tautan simbolis atau alias?

Martin
sumber
3
Tautan simbolik adalah entri file yang mereferensikan file lain. Di Linux, alias adalah pengganti sintaks perintah. Apa maksudmu dengan alias? Atau apakah Anda hanya bertanya bagaimana mengidentifikasi file mana yang merupakan tautan simbolik? find folder -type lakan mencantumkan semua tautan simbolis di bawah 'folder'.
StarNamer
Apakah Anda bertanya tentang alias di Mac OS X Finder, atau alias perintah shell?
Daniel Beck
Saya kira saya agak bingung. File yang dimaksud hanyalah tautan simbolis dan saya kira saya bingung dengan alias Os X Finder.
Martin

Jawaban:

16

Tautan simbolis:

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.

Jika file Anda berupa tautan keras, maka file itu akan muncul seperti file lainnya. Sebagai contoh, setiap direktori memiliki direktori yang bernama .hardlink.

Dari $ man find:

Setiap direktori pada sistem file Unix yang normal memiliki setidaknya 2 tautan keras: .' entry. Additionally, its subdirectories (if any) each have aentri namanya dan .. 'yang ditautkan ke direktori itu.

Tautan keras:

-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.
Sampo Sarrala - codidact.org
sumber
11

The fileatau statperintah akan memberitahu Anda apa file adalah:

$ 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

Jika scripting, testperintah mungkin lebih bermanfaat:

   -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
Grifferz
sumber