yalnızca ile başlayan dosyaları görüntüle. (gizli)


11

Yalnızca gizli dosyaları görüntülemeye çalıştım, ancak nasıl yapılacağını bilmiyorum.

Bu işe yarıyor (ancak diğer yerlerdeki noktaları da eşleştirmek)

ls -la | grep '\.'

Eklemeye çalışıyordum ^ama çözümü bulamadık.


1
Ayrıştırma lsasla harika bir fikir değildir, ancak ^maçın başlangıcını belirtmek için çapayı kullandıysanız denediğiniz şey işe yarardı. ls -la | grep '^\.'
devnull

3
Hayır olmaz, dosya adı -l bayrağına sahip satırın başlangıcı değildir. ls -la | awk '$9 ~ /^\./'niyet.
yoonix

Yanıtlar:



5
find . -type f -name '\.*' -print 

Her gizli dosyayı dizin hiyerarşisinde listelemek istiyorsanız çalışması gerekir.


2

lsÇıktıyı ayrıştırmak istiyorsanız ^, normal ifadenin başına eklemeniz ve -lseçeneği kullanmamanız gerekir . Kullanıldığında -l, her satır çıktısı dosya veya klasör adıyla değil dosya veya klasör izin bilgileriyle başlar. Yani böyle kullanmalısın:

ls -Ad | grep '^\.'

Veya printfbash yerleşik ile yapabilirsiniz :

printf "%s\n" .*

Kullanıyorsanız şunları zshkullanabilirsiniz:

print -l .*

1

Yalnızca gizli dosyaları bulmanın diğer iki yolu.

find . -maxdepth 1 -name ".*" -type f -ls

veya

find . -maxdepth 1 -name ".*" -type f -printf "%P \n"

-maxdepthDizin ağacında ne kadar aramak istediğinizi belirtmek için kullanın .


1

Flup'un cevabında bir gelişme :

ls -lad .[!.]* ..?*

Bu, adı bir nokta ile başlayan ve ne .de olmayan tüm dosyaları listeler ...

Not borusuna çıktısını istiyorsanız o lskadar grep(ki, devnull tarafından sivri out gibi , iyi bir fikir asla), emin kullanmak yapmak \lsveya command lsçünkü eğer lsdiğer ad olarak (örneğin Debian üzerinde olduğu gibi) size renkli çıktıyı göstermek için , çıktısı, grepkalıbın başlangıcında deseni sabitlenmişse kendi renginizi açacak olan renkli çıktı oluşturmak için ANSI kaçış dizileri içerir .


1
Sen kullanabilirsiniz -A(yerine -agörmezden) ., ...
OJFord

@ OJFord + , aşağıya inen dizinler için -Afarklıdır , ancak her ikisi de (eşit olarak) yoksayılır ve geçerli olarak komut satırında belirtilen adlar için işe yaramaz . Ayrıca, eğer takma ise boru tamam; sadece ya da soruna neden olur. -als-dls--color=auto--color=always--color
dave_thompson_085

0

Val0x00ff'nin çözümü gerçekten iyidir, ancak gizli dizinleri unutur.

Gizli dosyaları ve gizli dizinleri istiyorsanız , olmadan. ve .. :

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"

Öneriniz VMware ESXi'de (dosya yok ve dizin yok) başarısız oluyor ve Linux'ta da başarısız oluyor (maxdepth> 1 ile.. İle başlayan bir dizindeki tüm dosyaları da listeler.) find . \( -type f -o -type d \) -name '\.*' -print; maxdepthgerektiğinde uygulayın .
Jeroen Wiert Pluimers

0

Birinin altında çok kompakt ve birçok varyantı destekliyor

1) Gizli dosyaları, dizinleri ve alt dizinleri görüntüleyin

find . | grep "^\./\."

2) Yalnızca gizli dizinleri ve alt dizinleri görüntüleyin

find . -type d | grep "^\./\."

3) Gizli dosyaları yalnızca geçerli ve alt dizinlerde görüntüleyin

find . -type f | grep "^\./\."

4) Geçerli klasördeki gizli dosyaları ve dizinleri görüntüleme

find . -maxdepth 1 | grep "^\./\."


0

Deneyebilirsin:

find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print

Tabii ki farklı maxdepthdeğerler kullanabilir veya tamamen kaldırabilirsiniz. Dizinler ( -type d) veya normal dosyalar ( type f) veya her ikisi arasında keşfetmek ve aşağıdakiler gibi diğer işlevlerle birleştirmek istiyorsanız çok yararlıdır :

(örneğin @piroux örneğine göre son değiştirilme zamanı - @ jeroen-wiert-pluimers tarafından tamamlandı )

find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"

-1

Deneyebilirsin :

ls -a |grep -E  "^\."

^ regexp ile içeriğin başladığını belirtir


1
3 yıl önce başka bir yanıtın kopyası ...
Jeff Schaller

Önceki cevabı gördüm, yinelenmiyor ve kesinlikle "ls -a" ve "ls -Ad" aynı anlama gelmiyor. "-a", dosyalar / dizinler dahil tüm dosyaların "." -A, "" hariç tüm listeyi ifade eder. , ".." ve dizin içeriği.
Lingjing Fransa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.