Yanıtlar:
Başka bir yaklaşım, desen eşleşmesini şu alanlarda kullanmak olacaktır locate
:
locate '/some/directory/*filename*'
Aşağıdaki komutların çıktılarını karşılaştırın:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile*
aynı sonucu verir.
$ locate '/usr/lib64/*tmpfile'
hiçbir sonuç döndürmez.
locate
aktarabilirsiniz grep
.
Şu dizininiz için slocate veritabanı oluşturun:
updatedb -U /path/to/directory
ve şununla ara:
locate <search_string>
GÜNCELLEME
Bu, Gentoo sistemimde iyi çalışıyor ancak CentOS -U
seçeneği içermiyor . Bunun yerine aşağıda deneyebilirsiniz:
Veritabanını şununla oluşturun:
# updatedb -U /path/to/dir -o dir_locate.db
ve arama:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted
kontrol edin .
locate
Belirtilen bir dizinde arama yapmak için bir terminal diğer adı : Diğeralias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "
ad etkili olduğunda, terminal türündemy_locate *foo*
ve yarışlara gidiyorsunuz. Veritabanı güncellemelerini birleştirebilir ve veritabanlarını birleştirmek için iki nokta üst üste karakterini kullanarak aramayı bulabilirsiniz. rtfm: linux.die.net/man/8/updatedb