Joker kart adını tüm alt klasörlerde nasıl arayabilirim?


Yanıtlar:


40

Kullanabilirsiniz find. Örneğin, dosya adındaki tüm dosyaları ve dizinleri bulmak abcdisterseniz, aşağıdakileri çalıştırabilirsiniz:

find . -name '*abcd*'

12

zsh:

ls -ld -- **/*abcd*

ksh93:

set -o globstar     # put this line in your ~/.kshrc
ls -ld -- **/*abcd*

Bash ≥4:

shopt -s globstar   # put this line in your ~/.bashrc
ls -ld -- **/*abcd*

Yash:

set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*

tcsh:

set globstar
ls -ld -- **/*abcd*

balık:

ls -ld -- **abcd*

(; değil gibi sitelerde ise bazı dizin ağacını iniş yaparken Sembolik takip edecek bu kabukların bazı dikkat zsh, yashya tcshvar ***/*abcd*bunu yapmak için).

Taşınabilir (çok eski sistemler hariç; OpenBSD uzun zaman aldı ancak nihayet exec … +5.1'den beri destekledi ):

find . -name '*abcd*' -exec ls -ld {} +

POSIX değil ama üzerinde çalışıyor * BSD, Linux, Cygwin, BusyBox:

find . -name '*abcd*' -print0 | xargs -0 ls -ld

Bazı BSD'ler haricinde, eğer eşleşen bir dosya bulunamazsa, ls -ldargümanlar olmadan çalıştırılacağını, böylece listeleneceğini unutmayın .. Bazı xargsuygulamalarda, bu -rsoruna geçici bir çözüm bulmak için bu seçeneği kullanabilirsiniz .


shopt -s globstar ne yapar?
capybaralet

@ user2429920 gnu.org/software/bash/manual/… adresine gidin ve gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin seçeneğine tıklayın, sonra aşağı kaydırın globstar.
Gilles 'SO- kötülükten vazgeçmeyi'
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.