example.filenameFreeBSD sunucumdaki tüm kopyalarını bulmaya çalışıyorum . Bunu yapmanın en iyi / en kolay / en etkili yolu nedir?
example.filenameFreeBSD sunucumdaki tüm kopyalarını bulmaya çalışıyorum . Bunu yapmanın en iyi / en kolay / en etkili yolu nedir?
Yanıtlar:
find / -name example.filename
locate filename
Çok daha hızlı daha find, eğer sen hizmetini bulun çalıştırıyorsanız ve sadece zaman var olan dosyaları bulur updatedb(bir cron işi kontrolü altında befor Yukleme gece) son koştu.
Sen edebilirsiniz çalıştırmak updatedbelle, ama bundan bile daha yavaştır cletus anlaşılacağı ve kök gerektirir. Bazen bir sürü yeni şey yükledikten sonra veritabanını el ile güncelliyorum.find
find /haftada bir kereden fazla herhangi bir büyük ağaç üzerinde yapıyor veya bulursanız , locatehizmeti çalıştırmak muhtemelen faydalıdır, çünkü locate(1)çok daha hızlıdır.
sudo periodic weeklygünceller locate. İstediğiniz dosyaları içerebilecek herhangi bir yükleme veya indirme işleminden sonra bunu çalıştırın.
Eğer yerleştirme (aka slocate) yüklediyseniz,
locate example.filename
locate, her gece makinenizdeki tüm dosyaları yeniden endeksleyen bir cron işi çalıştırır. Bu nedenle her zaman güncel değildir.
Bazen dosyaları belirli bir dizin düzeyinde bulmak istersiniz. Bu durumda, kabuk joker karakterlerini kullanmak uygun olabilir:
ls /data/*/example.filename
Açıkçası bu sadece katı bir dizin yapınız varsa işe yarar.
locateDiğerlerinin de belirttiği gibi, locatebir dosya bulmanın hızlı yoludur. Bu komut, dosya ve klasör adlarının önceden derlenmiş bir dizinini kullanır. Bu ad veritabanı, dosya sisteminizi taramak yerine aranır.
locate example.filename
Büyük / küçük harfe duyarlı olmamak için ekleyin -i.
locate -i eXAmPle.FileName
locateVeritabanını güncelleTarafından kullanılan veritabanı locategüncel olmalıdır. İstediğiniz dosyayı içerebilecek bir yükleme veya indirme işlemi yaptıktan sonra locateveritabanını güncellemelisiniz .
locateVeritabanı sonunda FreeBSD sistem tarafından otomatik olarak güncellenecektir. Bu görevi içeren haftalık bir dizi iş vardır. Bu işler /etc/periodic/weekly/310.locatekomut dosyasında listelenir .
locateVeritabanının erken güncellenmesini zorlamanın en kolay yolu , haftalık işlerin şimdi yapılmasını zorlamaktır.
sudo periodic weekly
Ya da tüm normal işleri yapmaya bile zorlayabilirsiniz. Yeni bir FreeBSD sistemi kurduktan hemen sonra bunu yapmak isteyebilirsiniz.
sudo periodic daily weekly monthly
locateVeritabanını güncellemek için başka yollar kullanıyorsanız , güvenli olmama hakkında bir mesaj alabilirsiniz, bu da sisteminizin tüm dosyalarının adlarını FreeBSD sistemindeki herhangi bir kullanıcıya gösterir. periodicRotanın kullanılması bu sorunu önler.
Bulma veritabanını güncel varsa, sadece:
locate example.filename
Bazen yaparım
find . | grep example.filename
ancak muhtemelen oldukça verimsiz.