How to Find a file in FreeBSD
Solution 1
find / -name example.filename
Solution 2
locate filename
Much faster than find
, if you're running the locate service, and it only finds files that existed at the time updatedb
last ran (usualy the night befor under the control of a cron job).
You can run updatedb
by hand, but that is even slower than the find
cletus suggests, and requires root. I sometimes update the database by hand after installing a bunch of new stuff.
Solution 3
If you've got locate (aka slocate) installed, then
locate example.filename
locate runs a cron job every night that reindexes all the files on your machine. It's not always up to date for that reason.
Solution 4
Sometimes you want to find files at a specific directory level. In this case it can be convenient to use shell wildcards:
ls /data/*/example.filename
Obviously this only works if you have a rigid directory structure.
Solution 5
locate
As others mentioned, locate
is the fast way to find a file. This command uses an pre-compiled index of the file and folder names. This database of names is searched, rather than crawling through your file system.
locate example.filename
To be case-insensitive, add -i
.
locate -i eXAmPle.FileName
Update locate
database
The database used by locate
must be up-to-date. After doing an install or download that may contain your desired file, you must update the locate
database.
The locate
database will eventually be updated automatically by your FreeBSD system. There is a weekly set of chores that includes this task. These chores are listed in the /etc/periodic/weekly/310.locate
script.
The easiest safest way to force the early updating of the locate
database is to force the weekly set of chores to be done now.
sudo periodic weekly
Or, you could even force all the regular chores to be done. You might want to do this immediately after setting up a new FreeBSD system.
sudo periodic daily weekly monthly
If using other avenues to update the locate
database, you may get a message about being unsafe, revealing the names of all your system’s files to any user on the FreeBSD system. Using the periodic
route avoids this problem.
Related videos on Youtube
![Ian](https://i.stack.imgur.com/Z3lGo.jpg?s=256&g=1)
Ian
Updated on September 17, 2022Comments
-
Ian almost 2 years
I'm trying to locate all copies of
example.filename
on my FreeBSD server. What's the best / easiest / most efficient way to do this?-
Greg Hewgill about 15 yearsWhile the answers will be similar, you might want to clarify whether you are using Linux, or FreeBSD. They aren't the same thing.
-
Ian about 15 yearsedited title to make the OS more specific
-
mikl about 15 yearsThis should probably be tagged FreeBSD, but I lack the reputation to do so.
-
-
cletus about 15 yearsLocate only works if you have the service running to build the locate db (forget what it's called). It can also suffer from time delay (in that the file you're looking for may have been added since the last build).
-
dmckee --- ex-moderator kitten about 15 yearsReliable, but slow. Sometimes very slow.
-
dmckee --- ex-moderator kitten about 15 yearsEdits and comments crossed on the wire. Cool. You are, of course, right on both counts.
-
Drew Stephens about 15 yearsIf you find yourself doing
find /
or on any large tree more than once a week, then running thelocate
service is probably worthwhile, becauselocate(1)
is so much faster. -
Mihai Limbăşan about 15 yearsYup, that matches everything then throws away everything except for that one name you were looking for. Instead you can simply do ' find -name "example.filename" ' which does exactly the same stuff without first printing everything and without running an extra grep process.
-
Zac Thompson about 15 yearsother 'find' flags that may be appropriate, depending on the need: -type f (won't bother with directories or symlinks with the same name) -ls (to show details such as size of the file, e.g. if files have same name but different contents)
-
Basil Bourque almost 5 years@cletus Running
sudo periodic weekly
updates thelocate
database. Run that after any install or download that may contain the files you desire. -
XO01 over 2 yearsI've been using this since 2003 lol. And the hell with what everyone else says - the machine is here to make my life easier (not other way around).