Temukan file dan direktori biasa

9

Bagaimana saya bisa tahu (jika saya bisa tahu!) Menemukan untuk menemukan file dari kedua jenis direktori dan file?

find -type fd

Ini seperti zaman kegelapan heuristik di sini.

MageProspero
sumber

Jawaban:

12

Ini adalah perintah yang dapat Anda gunakan:

find -type f -or -type d
laebshade
sumber
7
Atau find -type f -o -type duntuk alternatif yang sesuai dengan POSIX.
manatwork
Hei, saya mengalami sedikit masalah dengan ini ketika saya menjalankan $ find. -type d -atau -tipe f -dan -inama "visi" itu tidak melakukan apa yang saya harapkan, apakah saya kehilangan sesuatu yang lain!
MageProspero
2
-a memiliki prioritas lebih dari -o, gunakan tanda kurung (tapi lepaskan mereka untuk shell) Tidak perlu menggunakan non-standar -atau -dan.
Stéphane Chazelas
jika saya coba `find. -type d atau -type f -name 'abc' . I get an error.. find: path harus mendahului ekspresi: `.. Adakah yang tahu kenapa?
alpha_989
1
@ alpha_989 hilang -sebelumnya or?
Mateusz Piotrowski
2

tl: dr

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

penjelasan

perintah -o ors argumen setelah filepath sepenuhnya, sehingga find . -name "*string*" -type f -o -type dmenghitung find . (-name "*string*" -type f) -o (-type d). Untuk alasan ini, Anda harus menentukan

Sebagian besar pengguna akan menginginkan sesuatu yang terlihat seperti

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

yang dihitung sebagai

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

temukan detail sintaks

-name "*string*"mencari nama yang berisi string stringdi mana saja di dalamnya.

Ulad Kasach
sumber
1

Jika Anda menggunakan GNU find maka solusi berikut mungkin cocok untuk Anda:

find -type d,f

Lihat man finduntuk lebih jelasnya:

Untuk mencari lebih dari satu jenis sekaligus, Anda dapat menyediakan daftar gabungan huruf jenis yang dipisahkan oleh koma ,(ekstensi GNU).

Mateusz Piotrowski
sumber
2
Menggunakan GNU findversi 4.7.0 .. Sepertinya tidak mendukung ,. Pesan kesalahan mengatakan bahwafind: Arguments to -type should contain only one letter.
alpha_989