Seznam všech symbolických odkazů v adresáři

100

Mám symbolický odkaz v adresáři/var/www/, který odkazuje na WordPress. Když spustím příkazls -la z adresáře/var/www/, odkaz na WordPress se nezobrazí. Existuje způsob, jak seznam všech symbolických odkazů v adresáři?

    
dané wisaac407 09.09.2014 19:56

8 odpovědí

61

Můžete použít příkazgrep sls pro zobrazení všech symbolických odkazů v aktuálním adresáři.

Zobrazí se všechny odkazy v aktuálním adresáři.

ls -la /var/www/ | grep "\->"
    
odpověděl g_p 09.09.2014 20:02
191

Parsingls je špatná myšlenka ® , preferuje jednoduchoufind v tom případ:

find . -type l -ls

Chcete-li zpracovat pouze aktuální adresář:

find . -maxdepth 1 -type l -ls

Kredity: Jak mohu shell rozpoznat názvy souborů vrácené příkazem" ls -A "a tyto názvy obsahují mezery? / p>     

odpověděl Sylvain Pineau 09.09.2014 20:21
8

Příkazls -la zobrazuje všechny soubory a složky i symbolický propojený adresář, pokud tento příkaz neobsahuje symbolický adresář, znamená to, že nemáte symbolický odkaz na WordPress .

Zobrazit výsledek běhuls -la:

kasiya@kasiya-pc:~$ cd /sys/devices/platform/sony-laptop
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la
total 0
drwxr-xr-x  3 root root    0 Sep  9 19:57 .
drwxr-xr-x 14 root root    0 Sep 10  2014 ..
-r--r--r--  1 root root 4096 Sep  9 22:32 battery_care_health
-rw-r--r--  1 root root 4096 Sep  9 22:32 battery_care_limiter
lrwxrwxrwx  1 root root    0 Sep  9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
-r--r--r--  1 root root 4096 Sep  9 22:32 modalias
drwxr-xr-x  2 root root    0 Sep  9 22:32 power
lrwxrwxrwx  1 root root    0 Sep  9 22:32 subsystem -> ../../../bus/platform
-rw-r--r--  1 root root 4096 Sep  9 22:32 touchpad
-rw-r--r--  1 root root 4096 Sep  9 19:57 uevent

Zobrazí se, že všechny symbolické adresáře mají oprávnění l při prosazování příznaků oprávnění. a pokud použijete grep s^l, můžete vypsat pouze symbolické soubory nebo adresář:

kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la |grep ^l
lrwxrwxrwx 1 root root    0 Sep  9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
lrwxrwxrwx 1 root root    0 Sep  9 22:32 subsystem -> ../../../bus/platform
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ 

ovladač a adresář subsystém jsou symbolickým odkazem na jiný adresář zde.

    
odpověděl αғsнιη 09.09.2014 20:32
3

POSIX:

find ! -name . -prune -type l
    
odpověděl cuonglm 09.09.2014 20:24
3

grep je vaším přítelem:

ls -lhaF | grep ^l   # list links
ls -lhaF | grep ^d   # list directories
ls -lhaF | grep ^-   # list files

Zobrazí se řádky začínající písmenem "l", které reprezentují odkazy ve sloupci Perms namístol used pro adresáře a- pro soubory

    
odpověděl Kalibur 08.10.2015 12:22
0

Zadejte příkazls -lai, seznam všech souborů a podadresářů s odpovídajícími čísly inode.Víte, že soubory se stejným číslem inode jsou odkazy (tvrdé nebo měkké) a toto řešení funguje i pro symbolické odkazy.

    
odpověděl saptarshi nag 09.09.2014 20:18
0

Zobrazení symbolických odkazů v adresáři:

  1. Otevřete terminál a přesuňte se do tohoto adresáře.

  2. Zadejte příkaz:

    ls -la
    

    Dlouhý seznam všech souborů v adresáři, i když jsou skryty.

  3. Soubory začínající sl jsou vaše soubory symbolických odkazů.

odpověděl sandeep srivastav vaddiparthy 10.09.2014 07:43
0

Může být provedeno také s pythonem:

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir

Spustit vzorek:

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime

Toto může být rozšířeno o rekurzivní funkcios.walk, ale stačí použít jednoduchou generaci seznamu pro výpis odkazů v jednom adresáři, jak jsem ukázal výše.

    
odpověděl Sergiy Kolodyazhnyy 09.01.2017 12:15