Come fanno 'stat' e 'file' a differenziare i symlink?

1

Oggi stavo facendo il mio lavoro di routine e sembra che i comandi stat e file nel terminale non mostrino se un file è un collegamento simbolico:

flow2k@myPad:dir ln -s aa.iml superlink
flow2k@myPad:dir stat superlink
16777220 11057327 lrwxr-xr-x 1 flow2k staff 0 6 "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" "Dec  2 13:25:34 2017" 4096 8 0 superlink

Come posso vedere se qualcosa è un link simbolico?

    
posta flow2k 02.12.2017 - 22:39
fonte

2 risposte

2

Il l in lrwxr-xr-x mostra che è un collegamento (simbolico).
Usa readlink file per mostrare dove punta il link simbolico.

La stat pagina manuale afferma :

When invoked as readlink, only the target of the symbolic link is printed. If the given argument is not a symbolic link, readlink will print nothing and exit with an error.

    
risposta data 03.12.2017 - 17:24
fonte
2

BSD stat e file differiscono dalle loro controparti Linux ma le versioni BSD possono imitare l'output di Linux. Dal manuale per file :

-h, --no-dereference
         option causes symlinks not to be followed (on systems that support symbolic links).

file -h /etc
/etc: symbolic link to private/etc

e dal manuale per stat

 -x      Display information in a more verbose way as known from some Linux distributions.

stat -x /etc
File: "/etc"
Size: 11           FileType: Symbolic Link
Mode: (0755/lrwxr-xr-x)         Uid: (    0/    root)  Gid: (    0/   wheel)
Device: 1,4   Inode: 419701    Links: 1
Access: Sun Apr 16 14:39:45 2017
Modify: Sun Apr 16 14:39:45 2017
Change: Sun Apr 16 14:41:19 2017    
    
risposta data 04.12.2017 - 13:07
fonte

Leggi altre domande sui tag