Yanıtlar:
findgerçek sistemde arar. Daha yavaş ama her zaman güncel ve daha fazla seçeneğe sahip (boyut, değişiklik zamanı, ...)
locateönceden inşa edilmiş bir veritabanı (komut updatedb) kullanır. Çok daha hızlıdır, ancak 'daha eski' bir veritabanı kullanır ve yalnızca adlarını veya parçalarını arar.
Her durumda man findve man locatesize daha fazla yardımcı olacaktır.
updatedbkabaca bir şeyler yapın find / -type f | gzip > locate.gz.
Hem de locatehem de findkomutlar bir dosya bulur, ancak oldukça farklı şekillerde çalışırlar.
locate çevrimdışı modda çalışacak:
locate, belirli bir dosyayı aramak için bu veritabanını kullanır. Sorun locatesadece şimdilik aramak istediğiniz bir dosya oluşturdum eğer olduğunu bulmak olmaz iş çünkü slocate veritabanı yukarı güncel değil. Bu sorunun üstesinden gelmek updatedbiçin, eğimli veritabanını güncellemek için kullanabilirsiniz . locateTekrar çalıştırıldığında yeni oluşturulan dosyayı bulacaksınız. Bu nedenle, birçok Linux sistem yöneticisi cron, slocate veritabanını düzenli olarak güncellemek için bir iş kullanır .find çevrimiçi / "gerçek zamanlı" modda çalışacaktır.
Dolayısıyla, doğaya dayanarak, konumlandırmanın bulmaktan daha hızlı olduğu ancak bulmanın gerçek zaman olduğu açıktır.
Umarım bu fikir temizlemeye yardımcı olur. Herşey gönlünce olsun. :)
Find komutunu kullanmanın bir alternatifi, locate komutudur. Bu komut genellikle daha hızlıdır ve tüm dosya sistemini kolaylıkla arayabilir. Komutu apt-get ile kurabilirsiniz:
sudo apt-get update
sudo apt-get install mlocate
Bulmanın sebebi bulmaktan daha hızlı olmasının nedeni, dosya sistemindeki dosyaların veritabanına dayanmasıdır. Veritabanı genellikle bir cron betiği ile günde bir kez güncellenir, ancak şunu yazarak elle güncelleyebilirsiniz:
sudo updatedb
Bu komutu şimdi çalıştır. Unutmayın, yakın zamanda edinilmiş veya oluşturulan dosyaları bulmak istiyorsanız, veritabanı daima güncel olmalıdır.