Pertanyaan terkait dengan skrip shell di bash
.
Bagaimana cara memeriksa dengan skrip file mana dalam direktori saat ini yang merupakan tautan lunak?
Jika saya menggunakan istilah yang salah, ketika saya mengatakan tautan lunak , saya merujuk ke file yang dibuat menggunakan ln -s
.
Satu-satunya hal yang berhasil saya pikirkan adalah mengevaluasi ls -la
sebagai ekspresi, dan menguraikan hasilnya, tetapi jelas ini bukan solusi terbaik.
bash
symbolic-link
ls
shell-script
ln
bguiz
sumber
sumber
Jawaban:
Lihat 'EKSPRESI KONDISI' dalam
man bash
- dalam hal ini Anda ingin-h
:sumber
test -h
adalah apa yang saya inginkan!Anda mungkin tidak benar-benar membutuhkan skrip. Untuk menampilkan tautan simbolik apa saja di folder saat ini, tanpa berulang ke folder anak apa pun:
Atau, untuk mendapatkan info lebih lanjut, gunakan salah satu dari:
Untuk mengetahui apakah suatu file adalah tautan simbolik, seseorang dapat menggunakan
readlink
, yang tidak akan menghasilkan apa-apa jika itu bukan tautan simbolik. Contoh berikut tidak cukup berguna, tetapi menunjukkan bagaimanareadlink
mengabaikan file dan folder normal. Gunakan salah satu dari:Perhatikan bahwa di atas
-exec ... +
danxargs ...
jauh lebih cepat daripada-exec ... \;
. Suka:sumber
xargs
adalah banyak lebih cepat pada Mac saya; lihat hasil edit saya. Tapi saya belajar sesuatu yang baru hari ini: ada juga+
alih-alih\;
(Meskipun beberapa orang mengklaim bahwa ini memiliki / memiliki masalah dengangrep
).