it-swarm-tr.com

LINUX Symlink dizinlerindeki dosyalar da dahil olmak üzere bir dizindeki tüm dosyaları tekrar tekrar listeleyiniz.

Diyelim ki içinde /dir, /dir/dir11 ve /dir/dir12 dizinleri için 3 bağlantı bulunan bir dizin /dir/dir13 var. dir11, dir12 ve dir13'dakiler de dahil olmak üzere dir içindeki tüm dosyaları listelemek istiyorum.

Daha genel olmak için, dizinlerde bulunan ve sembolik olanları da içeren tüm dosyaları listelemek istiyorum. find ., ls -R, vb. daha fazla listelemek için gezinmeden bağlantıda durur.

118
CuriousDawg

-L seçeneğinin ls seçeneği, istediğiniz şeyi gerçekleştirecektir. Sembolik bağları kaldırır.

Yani emriniz:

ls -LR

Bunu da başarabilirsiniz.

find -follow

-follow seçeneği, bulucuyu dizinlere sembolik bağlantılar izlemeye yönlendirir.

Mac OS X kullanımında

find -L

-follow olarak kullanımdan kaldırılmıştır.

187
Michael Ridley

Peki ya ağaç ? tree -l, sembolik bağlantıları izleyecektir.

Yasal Uyarı: Bu paketi yazdım.

107
Steve Baker
find /dir -type f -follow -print

-type f, gerçek dosyaları göstereceği anlamına gelir (sembolik linkleri değil)

-follow, dizininizdeki linkleri takip edeceği anlamına gelir

-print, dosya adlarını görüntülemesine neden olur.

Ls tipinde bir ekran istiyorsanız, aşağıdakileri yapabilirsiniz

find /dir -type f -follow -print|xargs ls -l
43
dvorak

Ls kullanarak:

  ls -LR

'adam ls' den:

   -L, --dereference
          when showing file information for a symbolic link, show informa‐
          tion  for  the file the link references rather than for the link
          itself

Veya, find kullanarak:

find -L .

Bulma sayfasından:

-L     Follow symbolic links.

Yalnızca birkaç sembolik bağları (belki de bahsettiğiniz üst düzeyler gibi) takip etmek istediğinizi tespit ederseniz, yalnızca komut satırında ilettiğiniz izleri izleyen -H seçeneğine bakmalısınız.

8
pjz
find -L /var/www/ -type l

# man find
-L     Follow  symbolic links.  When find examines or prints information about files, the information used shall be taken from the

özellikleri Bağlantının işaret ettiği dosya, bağın kendisinden değil (bozuk bir sembolik bağ ya da bulunmadığı sürece. Bu seçeneğin kullanımı -noleaf anlamına gelir. Daha sonra -P seçeneğini kullanırsanız, -noleaf hala geçerli olacaktır. -L ise yürürlükte olan ve bulduğu arama sırasında bir alt dizine sembolik bir bağlantı keşfeder; sembolik bağlantı olacaktır. aranmak.

5
Ashwin Muni

tree öğesinin uygun olduğunu biliyordum, ancak ağacım yoktu. Yani, çok yakın bir alternatifim var - burada

find ./ | sed -e 's/[^-][^\/]*\//--/g;s/--/ |-/'
3
divinedragon
ls -R -L

-L dereferences sembolik bağları. Bu, aynı zamanda dosyalara benzer sembolik bağlantılar görmeyi imkansız hale getirecektir - sivri uçlu dosya gibi görüneceklerdir.

2
Branan

tüm dosyayı yazdırmak istemeniz durumunda içerik: find . -type f -exec cat {} +

0
qrtLs