Hem normal dosyaları hem de dizinleri bulun


9

Hem dizindeki hem de dosya türündeki dosyaları bulmayı nasıl söyleyebilirim (söyleyebilirsem!)?

find -type fd

Burada sezgisel karanlık çağlar gibi.

Yanıtlar:


12

İşte kullanabileceğiniz komut:

find -type f -or -type d

7
Veya find -type f -o -type dPOSIX uyumlu alternatif için.
manatwork

Hey $ find çalıştırdığımda bu konuda küçük bir sorunla karşılaştım. -tipi d -veya -tip f -ve -iname "vizyon" tam olarak beklediğim şeyi yapmaz, başka bir şey eksik mi!
James

2
-a'nın önceliği vardır -o, parantez kullanın (ancak kabuk için onlardan kaçın). Standart olmayan -veya -ve kullanmaya gerek yoktur.
Stéphane Chazelas

eğer bulmaya çalışırsam. -type d veya -type f -name 'abc' . I get an error.. find: yollar ifadeden önce gelmelidir: `.. Neden?
alpha_989

1
@ alpha_989 daha -önce eksik ormi?
Mateusz Piotrowski

2

tl: dr

kullanım find . -name "*string*" -type f -o -name "*string*" -type d

açıklama

-o komutu or, dosyayolundan sonraki bağımsız değişkenleri s olarak find . -name "*string*" -type f -o -type dhesaplar find . (-name "*string*" -type f) -o (-type d). Bu nedenle,

Çoğu kullanıcı benzeyen bir şey isteyecektir

find . -name  "*string*" -type f -o -name "*string*" -type d

hangi olarak hesaplar

find . (-name  "*string*" -type f) -o (-name "*string*" -type d)

sözdizimi ayrıntılarını bul

-name "*string*"stringiçinde herhangi bir yerde dize içeren adları arar .


1

GNU bulmayı kullanıyorsanız aşağıdaki çözüm size uygun olabilir:

find -type d,f

Daha man findfazla ayrıntı için bakınız:

Aynı anda birden fazla tür aramak için, virgülle ,(GNU uzantısı) ayrılmış birleştirilmiş harflerin bir listesini sağlayabilirsiniz .


2
GNU find4.7.0 sürümü kullanılıyor ,. Desteklenmiyor gibi görünüyor . Hata mesajı şunu söylüyorfind: Arguments to -type should contain only one letter.
alpha_989
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.