Dengan perintah:
ls -la *
Saya dapat mendaftar semua tautan simbolis saya.
Bagaimana saya bisa menghapus semua tautan simbolis yang ditautkan ke folder khusus?
Sebagai contoh:
Dalam direktori saya, usr/local/bin
saya memiliki entri berikut:
lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded
lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex
lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara
Sekarang saya ingin menghapus semua tautan dengan path /usr/local/texlive/
Jawaban:
Pastikan Anda membaca jawaban alternatif . Bahkan lebih ke titik meskipun tidak memilih setinggi pada saat ini.
Anda dapat menggunakan ini untuk menghapus semua tautan simbolis:
dengan
find
versi modern .Pada versi find yang lebih lama mungkin harus:
Untuk membatasi ke target tautan tertentu, dengan asumsi tidak ada jalur yang mengandung karakter baris baru:
atau diformat dengan baik
The
if
tentu saja dapat juga mencakup kondisi yang lebih kompleks seperti pencocokan pola dengangrep
.Disesuaikan dengan kasus Anda:
atau diformat dengan baik:
sumber
-print
di akhirfind
perintah untuk mendapatkan umpan balik visual.Dengan modern
find
yang mendukung-lname
:harus melakukannya.
sumber
find /usr/local/bin
find
telah memiliki-lname
lebih lama dari yang saya pertahankan (sejak sekitar 2003).find
saya maksud adalah GNUfind
. ;) Saya menggunakanusr/local/bin
, karena itulah yang digunakan OP.The
find
solusi adalah besar.Kalau-kalau temuan Anda tidak mendukung
-lname
, inilah cara lain yang hanya menggunakan shell danreadlink
.sumber
Dengan
zsh
:$REPLY:P
sepenuhnya menyelesaikan jalur ke yang bebas-symlink, jadi dengan anggapan/usr/local/texlive
itu bebas dari symlink, itu akan menghapus semua file yang setelah resolusi symlink tinggal di bawah/usr/local/textlive
yang akan menyertakan tautan ke/usr/local/texlive/foo
tetapi juga ke../texlive/bar
atau ke/usr/./local/texlive/whatever
atau ke/some/other/symlink
yang dengan sendirinya menunjuk ke symlink/usr/local/texlive
, dll. .sumber
Buka path Anda dan atur konfigurasi path sendiri
sumber
usr/local/bin
yanggrep
dicari,grep -E
adalah cara untuk pergi. Kalau tidak, tidak akan ada hasil yang cocok. Jugah
dils
tidak melayani tujuan apa pun di sini!-h, --human-readable : with -l, print sizes in human readable format (e.g., 1K 234M 2G)
. Untuk lebih lanjut lihatman ls
atauman grep