Jeśli chcę użyć locate
polecenia na komputerze z systemem Linux, zwykle uruchamiam sudo updatedb
najpierw, aby zaktualizować bazę danych. Mogę uruchomić locate
polecenie w systemie OS X 10.5, ale nie mogę znaleźć updatedb
. Jaka jest odpowiednia aktualizacja dla komputera Mac?
234
locate
na systemie OS X wyświetla polecenie uruchomieniasudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
.locate
, może okazać się wygodniejsze korzystanie z interfejsu wiersza poleceń do Spotlightmdfind
, ponieważ baza danych Spotlight jest prawie zawsze aktualna i oferuje znacznie więcej funkcji niż lokalizacja.man mdfind
Odpowiedzi:
Jest
locate.updatedb
na Macu.Aby uzyskać więcej informacji, zobacz stronę podręcznika locate.updatedb .
źródło
man
strona twierdzi również: Zwykle jest uruchamiana raz w tygodniu przez zadanie /System/Library/LaunchDaemons/com.apple.locate.plist. (Iman locate
mówi o tym skrypcie: /usr/libexec/locate.updatedb Skrypt do aktualizacji zlokalizowanej bazy danych )sudo ionice -c3 updatedb
co każeupdatedb
ładnie współdzielić kontroler we / wy (io nice), ale nie sądzę, że to polecenie jest dostępne na komputerze Mac. Brakuje mi także-r
flagi wyrażenia regularnego, której można używać z lokalizacją GNU, chociaż nie jestem pewien, czy chcę użyć homebrew i zainstalować lokalizację GNU wspomnianą przez @GrogsThe locate database is typically built by user ''nobody'' and the locate.updatedb(8) utility skips directories which are not readable for user ''nobody'', group ''nobody'', or world. For example, if your HOME directory is not world-readable, none of your files are in the database
Możesz zrobić,
sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb
abyupdatedb
polecenie było dostępne.źródło
Osobiście właśnie zainstalowałem findutils (używam MacPorts lub Homebrew).
Następnie musisz zlokalizować i zaktualizować GNU.
updatedb nie będzie działać bez sudo.
Osobiście wolę jednak zlokalizować jednego użytkownika; jeśli będziesz sudo, inni użytkownicy będą znać nazwy / lokalizacje wszystkich twoich plików.
Mam zadanie crona do uruchomienia:
updatedb --localpaths='/Users/grogs' --output='/Users/grogs/tmp/locatedb'
I w moim .zshrc .bashrc / .bashprofile:
export LOCATE_PATH="~/tmp/locatedb"
źródło
gupdatedb
polecenie, a nieupdatedb
jedno. Niestety to polecenie dało mi błąd opisany tutaj (w którym znajduje się twoja odpowiedź SO). Ostatecznie ja aliasemupdatedb
doLC_ALL=’C’ sudo updatedb
jako obejście, ale nie wiem, czy jest to rozwiązanie długoterminowe./opt/local/libexec/gnubin
na początku ścieżki, jeśli chcesz, abycoreutils
ifindutils
zainstalowanemacports
były dostępne z oryginalnymi nazwami (a nie z ichg
wersjami z prefiksem).Jeśli uruchomisz lokalizowanie bez uprzedniej aktualizacji bazy danych, masz szansę zobaczyć zalecany sposób działania systemu operacyjnego po danych wyjściowych.
źródło