Saya memiliki tautan simbolis di saya /var/www/ direktori yang link ke WordPress. Ketika saya menjalankan perintah ls -la dari /var/www/ direktori tautan ke WordPress tidak muncul. Apakah ada cara untuk membuat daftar semua tautan simbolis yang ada di direktori?
Parsing ls adalah Ide Buruk®, lebih suka yang sederhana find dalam hal ini:
find . -type l -lsUntuk hanya memproses direktori saat ini:
find . -maxdepth 1 -type l -ls
Anda dapat menggunakan grep dengan ls perintah untuk mencantumkan semua tautan simbolis yang ada di direktori saat ini.
Ini akan mencantumkan semua tautan yang ada di direktori saat ini.
ls -la /var/www/ | grep "\->"
grep apakah teman Anda:
ls -lhaF | grep ^l # list linksls -lhaF | grep ^d # list directoriesls -lhaF | grep ^- # list filesIni akan mencantumkan baris yang dimulai dengan "l" yang mewakili tautan di kolom perms sebagai pengganti l gunakan d untuk direktori dan - untuk berkas
POSIXly:
find ! -name . -prune -type l
Ini mengembalikan semua item yang ditautkan secara simbolis (baik dirs & fns) dalam direktori:
find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"Namun, untuk membedakan antara jenis item yang ditautkan secara simbolis:
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1Pengembalian simbolis terkait item nama file saja. Dan,
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1Mengembalikan item dirname yang ditautkan secara simbolis saja.
Untuk melihat tautan simbolis dalam direktori:
Buka terminal dan pindah ke direktori itu.
-
Ketik perintah:
ls -laIni akan panjang daftar semua file dalam direktori bahkan jika mereka tersembunyi.
File yang dimulai dengan
ladalah file tautan simbolis Anda.
Jenis ls -lai, ini akan mencantumkan semua file dan subdirektori dengan nomor inode yang sesuai.Anda tahu file dengan nomor inode yang sama adalah tautan(keras atau lunak) dan solusi ini juga berfungsi untuk tautan simbolis.
Dapat dilakukan dengan python juga:
$ 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/dirContoh run:
$ 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/localtimeIni dapat diperpanjang menjadi rekursif melalui os.walk fungsi, tetapi cukup menggunakan pembuatan daftar sederhana untuk mencantumkan tautan dalam satu direktori seperti yang saya tunjukkan di atas.
Mohon temukan di bawah satu perintah skrip bash liner untuk menemukan semua tautan simbolik yang rusak secara rekursif di OS berbasis linux apa pun
b=$(find / -type l); for i in $(echo $b); do file $i ; done |grep -i broken 2> /dev/null
menggunakan zsh
ls -l *(@)lrwxrwxrwx 1 david david 15 Nov 18 22:35 gvimrc -> /etc/vim/gvimrclrwxrwxrwx 1 david david 13 Nov 18 22:19 mydomains.php -> mydomains.php