Dizindeki tüm sembolik linkler nasıl listelenir

97

/var/www/ dizinimde WordPress'e bağlanan sembolik bir bağlantım var. % Co_de% dizininden ls -la komutunu çalıştırdığımda, WordPress bağlantısının görünmez. Dizindeki tüm sembolik linkleri listelemenin bir yolu var mı?

    
sordu wisaac407 09.09.2014 19:56

8 cevap

58

Geçerli dizinde bulunan tüm sembolik bağlantıları listelemek için grep ls komutuyla kullanabilirsiniz.

Bu, geçerli dizinde bulunan tüm bağlantıları listeler.

ls -la /var/www/ | grep "\->"
    
verilen cevap g_p 09.09.2014 20:02
185

ls ayrıştırma, Kötü Fikir ® olup, find basit bir tercih vaka:

find . -type l -ls

Sadece geçerli dizini işlemek için:

find . -maxdepth 1 -type l -ls

Kredi: Kabuğun 'ls -A' komutuyla döndürülen dosya adlarını tanımasını nasıl sağlayabilirim ve bu adlar boşluk içeriyor mu?

    
verilen cevap Sylvain Pineau 09.09.2014 20:21
8

ls -la komutu, tüm dosya ve klasörleri ve ayrıca sembolik bağlantılı dizini gösterir, eğer bu komut herhangi bir sembolik dizin göstermiyorsa, WordPress 'e sembolik bir bağlantınız olmadığı anlamına gelir.

ls -la çalışmasının sonucunu görün:

[email protected]:~$ cd /sys/devices/platform/sony-laptop
[email protected]:/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

Tüm sembolik dizinin izin bayrakları dolduruyorken l iznine sahip olduğunu göreceksiniz. ve ^l ile bir grep alırsanız, yalnızca sembolik dosyaları veya dizini listeleyebilirsiniz:

[email protected]:/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
[email protected]:/sys/devices/platform/sony-laptop$ 

sürücü ve alt sistem dizini, buradaki diğer dizine sembolik bağlantılardır.

    
verilen cevap αғsнιη 09.09.2014 20:32
3

POSIXly:

find ! -name . -prune -type l
    
verilen cevap cuonglm 09.09.2014 20:24
3

grep arkadaşınız:

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

Bu, dizinler için l use d ve dosyalarda - yerine perms sütunundaki Bağlantıları temsil eden "l" ile başlayan satırları listeler

    
verilen cevap Kalibur 08.10.2015 12:22
0

ls -lai yazın, karşılık gelen inode numaralarıyla tüm dosyaları ve alt dizinleri listeler. Aynı inode numarasına sahip dosyaların bağlantıları (sert veya yumuşak) ve bu çözüm ayrıca sembolik bağlantılar için de çalışır.

    
verilen cevap saptarshi nag 09.09.2014 20:18
0

Dizindeki sembolik bağlantıları görüntülemek için:

  1. Bir terminal açın ve bu dizine taşıyın.

  2. Komutu yazın:

    ls -la
    

    Bu, gizlenmiş olsalar bile dizindeki tüm dosyaları uzun listeleyecektir.

  3. l ile başlayan dosyalar sembolik bağlantı dosyalarınızdır.

verilen cevap sandeep srivastav vaddiparthy 10.09.2014 07:43
0

Python ile de yapılabilir:

$ 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

Örnek çalıştırma:

$ 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

Bu, os.walk işleviyle yinelemeli olacak şekilde genişletilebilir, ancak yukarıda gösterdiğim gibi tek bir dizinde listeleme bağlantıları için basit liste oluşturmayı kullanmak yeterlidir.

    
verilen cevap Sergiy Kolodyazhnyy 09.01.2017 12:15

Etiketlerdeki diğer soruları oku