Misalkan saya memiliki sebuah direktori /dir
dalam yang ada 3 symlink ke direktori lain
/dir/dir11
, /dir/dir12
dan /dir/dir13
. Saya ingin membuat daftar semua file dir
termasuk yang ada dalam dir11
, dir12
dan dir13
.
Agar lebih umum, saya ingin membuat daftar semua file termasuk yang ada di direktori yang merupakan symlink. find .
,, ls -R
dll berhenti di symlink tanpa menavigasi ke mereka untuk mendaftar lebih lanjut.
Jawaban:
The
-L
pilihan untukls
akan mencapai apa yang Anda inginkan. Ini referensi tautan simbolik.Jadi perintah Anda adalah:
Anda juga dapat menyelesaikan ini dengan
The
-follow
pilihan mengarahkan menemukan untuk mengikuti link simbolik ke direktori.Di Mac OS X gunakan
seperti yang
-follow
sudah ditinggalkan.sumber
-follow
- dan dikatakan tidak menemukan folderollow
find -L .
- Saya mengalami masalah yang sama dengan @ S.Matthew_Englishfollow
hanya ingin path file (path lengkap ke file) dan bukan path direktori, bagaimana saya bisa melakukannya?Bagaimana dengan pohon ?
tree -l
akan mengikuti symlinks.Penafian : Saya menulis paket ini.
sumber
ls
. Ini juga lebih mudah untuk di-paste.-type f
berarti itu akan menampilkan file nyata (bukan symlink)-follow
berarti akan mengikuti symlink direktori Anda-print
akan menyebabkannya menampilkan nama file.Jika Anda menginginkan tampilan tipe ls, Anda dapat melakukan hal berikut
sumber
ls -L
opsiMenggunakan ls:
dari 'man ls':
Atau, menggunakan find:
Dari manual find:
Jika Anda hanya ingin mengikuti beberapa tautan simbolis (seperti mungkin yang paling atas yang Anda sebutkan), Anda harus melihat opsi -H, yang hanya mengikuti symlink yang Anda lewati di baris perintah.
sumber
Saya tahu
tree
itu pantas, tetapi saya tidak memasang pohon. Jadi, saya punya alternatif yang cukup dekat di sinisumber
sumber
-L
tautan simbolik dereferences. Ini juga akan membuat tidak mungkin untuk melihat symlink ke file, meskipun - mereka akan terlihat seperti file runcing.sumber
jika Anda ingin mencetak semua konten file :
find . -type f -exec cat {} +
sumber