Bagaimana saya bisa mencari nama direktori secara rekursif dengan string tertentu di mana string hanya bagian dari nama direktori


73

Bagaimana saya bisa secara rekursif mencari nama direktori dengan string tertentu di mana string hanya bagian dari nama direktori?

Sebagai contoh: nama direktori adalah "8.0.3-99966_en", tetapi saya ingin secara rekursif mencari direktori dengan string "99966".

Jawaban:


95

Anda dapat menggunakan findperintah:

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Contoh:

find ~ -type d -name "*99966*" -print

harus menemukan semua direktori ( -type d) mulai dari direktori home Anda ( ~) yang memiliki nama mereka yang berisi string "99966" ( -name "*99966*") dan mengeluarkannya ( -print).


Bagaimana saya bisa mengecualikan direktori tertentu dari pencarian? Saya perlu mencari / tetapi saya mendapatkan banyak hasil / proc yang tidak saya pedulikan.
Kozuch

@ Kuzuch (setelah beberapa saat!): Anda dapat menggunakan grep negatif, menyaring pencarian sinf ke dalam commend seperti: find <wh whatever> | grep -v "/ proc" yang akan menyaring semua baris yang berisi string pencarian.
Juan Lanus


9

Anda dapat pipa output ke grepuntuk memilikinya menyorot nama direktori
Sesuatu seperti

find / -type d | grep "directory name"

The /menunjukkan untuk mencari seluruh komputer


@Zanna Anda benar, saya sudah mengedit jawabannya. Terima kasih telah menunjukkannya
Collin

3

Cara mudah untuk melakukannya adalah menggunakan find | egrep string. Jika ada terlalu banyak klik, gunakan -type dbendera untuk menemukan. Jalankan perintah di awal pohon direktori yang ingin Anda cari, atau Anda harus menyediakan direktori sebagai argumen findjuga.

Cara lain untuk melakukan ini adalah menggunakan ls -laR | egrep ^d.

Dan locateperintah itu juga berguna:locate string

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.