Ls alias'ta sadece gizli dosyaları (nokta dosyaları) göster


42

Komutu kullanıyorum

ls -a | grep '^\.'

sadece gizli dosyaları göstermek için. Satırı ekledim

alias hidden='ls -a | grep '^\.'' # show only hidden files

için .bash_aliasesdosyanın

ama bu çalışmıyor. Muhtemelen 'karakterdeki sorun budur .

Lütfen doğru takma adı yazmama yardım eder misin?


daha da karmaşık olan örneklerde, nadiren tek - çift tırnak arasında geçiş yapmak zorunda kalırsınız. Bu sadece tırnakları birbirine dayandırmak suretiyle yapılabilir. Bu örnek için, 'ls -a | grep '"'"'^\.'"'"'çok korkunç görünüyordu (ve bu örnek için tamamen gereksiz çünkü çiftten her ikisi için de sadece çift tırnakları değiştirebiliyorsunuz), ancak çok nadir durumlarda kullanışlıdır. Ayrıca -Cbayrak isteyebilirsiniz (çoklu sütun çıktısını zorla). Bu resmi gör imgur.com/a/VIVFP
Dylan

Yanıtlar:


26

Ya iç tırnak çiftini çift tırnak işareti yapın:

alias hidden='ls -a | grep "^\."'

Veya dış tırnak çiftini çift tırnak işareti yapın:

alias hidden="ls -a | grep '^\.'"

Veya tüm teklifleri çift tırnak içine alın ve iç çiftten çıkın:

alias hidden="ls -a | grep \"^\.\""

Ya da bir fonksiyon yapın, böylece çağırırken bazı argümanları iletebilirsiniz:

hidden() { ls -a "$@" | grep '^\.'; }

90

Kabuk nokta dosyaları listelemek ve lsdizinleri görmemek söyle :

ls -d .*

6
Bu, greptemelli yaklaşımdan farklı olarak çok sütunlu listelemeye izin verme avantajına sahiptir .
anol

Ancak, dizinleri de gösterir (belirtildiği gibi). Olduğu gibi basit tutmak ve sadece dosyaları göstermek için herhangi bir yolu?
honzajde 10:16

@honzajde Soru, dizinleri dışlamak istemedi. Dizinleri hariç tutmak istiyorsanız, ls -d .* | grep -v '^d'ya da (sadece zsh) kullanabilirsinizprint -lr .*(.)
Gilles 'SÖZLEŞMEYİ'

bu benim için işe yaramıyor, Ubuntu'da 16.04
Andrew_1510

9
ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting

VEYA

Aynı bir takma ad oluşturmak için:

alias lh='ls -Ad .*'

VEYA

Grep komutu ve boru operatörü ile aynı şey yapılabilir; bununla birlikte rengi kaybeder ve biçimlendirir:

ls -a|grep "^\." 

VEYA

Takma ad üzerinden:

alias lh='ls -a|grep "^\."'

4

Çift tırnak kullanabilirsiniz:

alias hidden="ls -a | grep '^\.'"

veya daha fazla tek alıntı dizge bitiştirmek

alias hidden='ls -a | grep '\''^\.'\'

veya tüm dahili alıntılarda kaldır

alias hidden='ls -a | grep ^\\.'

2

Kayıt için bu, ls -aiki (bazen daha fazla sütun) yazdırdığı için benimle çalışmıyor gibi görünüyor . -1Her dosyanın kendi satırında olduğundan emin olmak için bu seçeneği kullanmanızı öneririm . Bunun gibi bir şey:

alias hidden='ls -a1 | grep "^\."'

Ben sadece denedim ls -a | cathala 2 sütun çıktılar. Solaris kullanıyorum, GNU’ları değil. Belki de bu yüzdendir. Her durumda -1çözümünüz kusursuz çalıştı ve benim geçici çözümümden çok daha zarif. Cevabımı güncelliyorum.
rahmu

Muhtemelen bu tartışmayı kaçırdım, ama bir şeyler ters giderse, buraya bakın.
xralf

1

Bunu biraz daha karmaşık hale getirmek, ancak ayrıştırmaktanls kaçınmak .

llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }

lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }

İki kabuk işlevi find, geçerli dizindeki veya komut satırında verilen dizindeki tüm gizli normal dosyaların bir listesini oluşturmak için kullanılacaktır .

llshFonksiyonu üretecektir sadece biraz daha ayrıntılı daha olacak "Uzun listesi" ls -lise, lshböyle listeleyen bir tek sütun oluşturur ls -1.


0
find . -type f -name ".*"

VEYA

find . -type f -name ".*" | while read file; do basename $file; done

Selam! Nasıl çalıştığını ayrıntılı bir şekilde açıklayarak ve ayrıca sizce soruyu neden cevapladığını söyleyerek cevabınızı geliştirebilirsiniz.
dhag

0
# add it to ~/.bashrc

    hidden() {  # lists hidden files and directories
        find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
        }

    hiddenfiles() { # lists hidden files
        find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
        }

    hiddendirs() { # lists directories
        find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
        }

-1

lsDesteğiniz var mı ? Kimden man ls:

    -a, --all
          do not ignore entries starting with .

   -A, --almost-all
          do not list implied . and ..

$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  
Written by Richard M. Stallman and David MacKenzie.

Evet öyle, ama onlygizli dosyalar istedim .
xralf

ls -A -1 -d -F .* | egrep -v '/$'
waltinator

-3

Sadece basitçe aşağıdaki komutu yazın ve yukarıda açıklananlarla karıştırmayın.

ls -A -1 -d -F .* | egrep -v '/$'

Bence OP düzgün bir takma isim yazmak istedi.
countermode

1
Bu sadece valsinin cevabına yaptığı yorumunun bir kopyası. Bu cevabın faydalı olması için, bu lsbayrakların ve egrepkomutun soruyu neden ve neden cevapladığını açıklamanız gerekir .
Anthony G - Monica

-3
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"

2
Lütfen cevabınızı netleştirebilir misiniz, bir kod satırı iyi bir cevap olarak sayılmaz
Romeo Ninov

İsteğe bağlı olarak yalnızca gizli dosyaları listelemesi gerekir. bu yüzden gizli dosyalar dahil tüm dosyaları ls -lart ile listeledim. sonra nokta (.) ile başlayan dosyaları göstermek için regex kullandım. Böyle bir şey çıktı.
shailesh Chanderiya,

[g906016 @ hklu2574881: [PTA] ~] $ ls -lart | sed -n "/ \. [A-Za-z0-9] [A-Za-z0-9] * / p" -rw-r - r - 1 g906016 g906016 658 29 Aralık 2016 .zshrc -rw- r - r - 1 g906016 g906016 171 Aralık 29 2016 .kshrc -rw ------- 1 g906016 g906016 27 Ara 29 2016 .k5login -rw-r - r-- 1 g906016 g906016 176 Ara 29 2016. bash_profile -rw-r - 2016 1 g906016 g906016 18 Aralık 29 r-- .bash_logout -rwxr-xr-x, 1 g906016 g906016 0 29 Aralık 2016 .dir_colors drwxr-x --- 3 g906016 g906016 4096 Aralık 29, 2016 .subversion
shailesh Chanderiya
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.