/var/www/
Dizinimde WordPress'e bağlanan sembolik bir bağlantı var . Ben komutu çalıştırdığınızda ls -la
gelen /var/www/
dizine WordPress link görünmüyor. Dizindeki tüm sembolik bağları listelemenin bir yolu var mı?
/var/www/
Dizinimde WordPress'e bağlanan sembolik bir bağlantı var . Ben komutu çalıştırdığınızda ls -la
gelen /var/www/
dizine WordPress link görünmüyor. Dizindeki tüm sembolik bağları listelemenin bir yolu var mı?
Yanıtlar:
Geçerli dizinde bulunan tüm sembolik bağlantıları listelemek grep
için ls
komutla birlikte kullanabilirsiniz .
Bu, mevcut dizinde bulunan tüm bağlantıları listeler.
ls -la /var/www/ | grep "\->"
->
" İçeren bir dosyanız varsa yanlış pozitif döndürür . Basit bir deneyintouch "foo->"
grep
ile ing ^l
?
alias listlinks='ls -l --color | grep "\->"'
8-)
Ayrıştırma ls
bir Bad Idea ® ' dır find
, bu durumda basit bir yöntem tercih edin:
find . -type l -ls
Sadece geçerli dizini işlemek için:
find . -maxdepth 1 -type l -ls
find: Unknown argument to -type: 1
1
(bir) ama l
(bağlantı)
find /<your_directory> -maxdepth 1 -type l -ls 2>/dev/null
Teşekkürler!
-maxdepth 1
.
awk
, muhtemelen sadece şunu find . -maxdepth 1 -type l | sort -n
ls -la
Bu komut size simgesel bir bağlantı olmadığı anlamına gelir herhangi sembolik dizin gelmezse komut, tüm dosyaları ve klasörleri ve ayrıca sembolik bağlantılı dizini göstermek WordPress .
koşu sonucuna bakın ls -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
Tüm sembolik dizinin l
izin bayraklarının dilenmesinde izinli olduğunu göreceksiniz . ve bir grep ^l
alırsanız sadece sembolik dosyaları veya dizini listeleyebilirsiniz:
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$
Sürücü ve alt sistem dizini, buradaki diğer dizine sembolik bağdır.
l
, bunun sembolik bir bağlantı olduğu anlamına geliyor.
Bir dizindeki sembolik bağlantıları görüntülemek için:
Bir terminal açın ve bu dizine gidin.
Komutu yazın:
ls -la
Bu, gizli olsalar bile dizindeki tüm dosyaları listeleyecektir.
Başlayan dosyalar, l
sembolik bağlantı dosyalarınızdır.
Bu, bir dizindeki sembolik olarak bağlı tüm öğeleri (her iki dir ve fns) döndürür:
find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"
Ancak, sembolik olarak bağlanmış gerçek öğe türlerini ayırt etmek için:
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1
Yalnızca sembolik bağlantılı dosya adı öğelerini döndürür. Ve,
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1
Yalnızca sembolik olarak bağlı dizin ismi öğelerini döndürür.
Tür ls -lai
, bu inode numbers.You aynı inode numarası ile dosyaları biliyorum karşılık gelen tüm dosya ve alt listeler vardır (sert veya yumuşak) bağlantıları ve bu çözüm de sembolik bağlantıları için çalışır.
ls -lai
yok değil bir dosya ve sembolik bağlantılar için aynı inode numarasını gösterir. Sabit bağlantıların aksine, sembolik bağlantıların kendi ayrı inode girişleri vardır. Göründüğü gibi.
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ışma:
$ 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
fonksiyon aracılığıyla özyinelemeli olacak şekilde genişletilebilir , ancak yukarıda gösterdiğim gibi tek bir dizindeki bağlantıları listelemek için basit liste oluşturmayı kullanmak yeterlidir.