Pertanyaan Bagaimana cara menggunakan perintah “find” dengan beberapa kondisi?


Perintah ini akan mencetak nama file * .cpp di direktori yang diberikan:

find . -name "*.cpp" -print  

Bagaimana saya bisa mencetak baik * .cpp dan *. H nama file?


2
2018-06-29 11:46


asal


gunakan opsi -o sebagai, temukan. -name ".cpp "-o -name".h "-print - thegeek


Jawaban:


Coba ini:

find -regex ".*\.\(cpp\|h\)$"

Contoh dengan lebih banyak alternatif:

find -regex ".*\.\(cpp\|c\|h\|o\)$"

2
2018-06-29 14:07





Menggunakan -o; lihat contoh di sini.


3
2018-06-29 11:57



Saya pikir ini seharusnya menjadi jawaban yang diterima. - feuGene


Saya akan memberikan contoh. Ini akan mencari file dengan pemilik = 1000 dan menulisnya ke "uid.list", mencari file dengan grup = 1000 dan menulisnya ke "gid.list" dan akan melewati jalur yang diawali dengan / proc, / sys, / dev . Keuntungan dari kondisi gabungan adalah filesystem yang dipindai hanya sekali. Ini dia:

find / \
\( \( -path "/proc" -or -path "/sys" -or -path "/dev" \) -prune \) -or \
\( \( -user 1000 -fprint "uid.list" \)  , 
   \( -group 1000 -fprint "gid.list" \) \)

1
2018-06-29 12:36



Saya pikir ini terlalu banyak informasi untuk pertanyaan ini. - feuGene


Menggunakan:

find . -name "*.cpp" -print -o -name "*.h" -print

0
2017-07-10 20:33