find-command untuk subdirektori tertentu


17

Katakanlah saya memiliki direktori dirdengan tiga subdirektori dir1.. dir3. Dan di dalamnya saya punya banyak file dan subdirektori lainnya.

Saya ingin mencari file di dalamnya, katakan dengan *.cakhiran, tetapi saya hanya ingin mencari di subdirektori "dir / dir2" dan semua subdirektori. Bagaimana saya bisa merumuskannya?

Dengan asumsi saya masuk dir/saya punya:

find . -name "*.c"

untuk mencari di semua direktori.

Bagaimana saya membatasi hanya dir2?

Jawaban:


11

Temukan akan menerima jalur yang valid demikian

find ./dir2 -name '*.c'

harus melakukan trik

Jika dirdirektori itu /home/user/dirAnda bisa memberikan menemukan path lengkap

find /home/user/dir/dir2 -name '*.c'

17

Anda juga dapat menggunakan -pathparameter finddi tempat -name:

find . -path "dir2/*.c"

Ini dapat memungkinkan Anda menemukan file dir2bahkan jika dir2bukan subdirektori langsung, misalnya:

# find . -path "*/dir2/*.c"
./dir_a/dir2/file.c
./dir_b/dir2/file.c

4

Anda dapat melakukan find dir2 -name '*.c'

Anda juga bisa melakukannya (cd dir2; find -name '*.c')

Jika Anda ingin melihat dir1 dan dir3 tetapi tidak dir2, Anda bisa melakukannya find {dir1,dir3} -name '*.c'


3
Pada perintah terakhir, kawat gigi tidak diperlukan. find dir1 dir3 -name \*.cberfungsi dengan baik.
KeithB

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.