Saya menggunakan Ubuntu, dan saya ingin menemukan semua file di direktori dan subdirektori saat ini yang namanya berisi string "John". Saya tahu itu grep
bisa cocok dengan konten di file, tapi saya tidak tahu bagaimana menggunakannya dengan nama file. Bantuan apa pun akan dihargai.
107
Jawaban:
Gunakan perintah find ,
sumber
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi
akan membiarkan Anda berjalanF search-string
sebagai pintasan yang sempurna[ -z "$1" ]
akan sedikit lebih baik.if [ -z ]
. Saya pikir itu akan menjadi kesalahan sintaks, tetapi berhasil. Saya dapat menyederhanakan beberapa kode saya mulai sekarang.Jawaban yang benar telah diberikan, tetapi bagi Anda untuk belajar bagaimana membantu diri Anda sendiri, saya pikir saya akan memberikan sesuatu yang membantu dengan cara yang berbeda; jika Anda dapat menyimpulkan apa yang ingin Anda capai dalam satu kata, ada fitur bantuan yang sangat bagus di Linux.
Apa yang dilakukannya adalah mencantumkan semua perintah yang memiliki istilah pencarian Anda dalam deskripsi singkat. Biasanya ada peluang bagus bahwa Anda akan menemukan apa yang Anda cari. ;)
Keluaran itu terkadang bisa membuat kewalahan, dan saya merekomendasikan untuk mempersempitnya menjadi file yang dapat dieksekusi, daripada semua halaman manual yang tersedia, seperti:
atau, jika Anda juga ingin mencari perintah yang membutuhkan tingkat hak istimewa yang lebih tinggi, seperti ini:
sumber
The
find
perintah akan memakan waktu lama karena memindai file nyata dalam sistem file.Cara tercepat adalah menggunakan
locate
perintah, yang akan langsung memberikan hasil:Jika perintah tidak ditemukan, Anda perlu menginstal
mlocate
paket dan menjalankanupdatedb
perintah terlebih dahulu untuk menyiapkan database pencarian untuk pertama kalinya.Lebih detail di sini: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
sumber
gunakan ack sederhana. ketik saja
ack <string to be searched>
sumber
Ini adalah solusi yang sangat sederhana dengan menggunakan
tree
perintah di direktori yang ingin Anda cari.-f
menunjukkan jalur file lengkap dan|
digunakan untuk menyalurkan output dari pohongrep
untuk menemukan file yang berisi stringfilename
dalam nama.sumber