මැක් සඳහා ලිනක්ස් යාවත්කාලීන කළ විධානයට සමාන කුමක්ද?


242

මට locateලිනක්ස් යන්ත්‍රයක විධානය භාවිතා කිරීමට අවශ්‍ය නම් , සාමාන්‍යයෙන් මම sudo updatedbමුලින්ම දුවන්නේ දත්ත සමුදාය යාවත්කාලීන කිරීමට ය. මට locateOS X 10.5 හි විධානය ක්‍රියාත්මක කළ හැකි නමුත් මට සොයාගත නොහැක updatedb. මැක් සඳහා අනුරූප යාවත්කාලීන කරන ලද කුමක්ද?


හොඳින් යාවත්කාලීන කිරීම සහ ස්ථානගත කිරීම හොඳ දේවල් නමුත් ඒවාට යාවත්කාලීන කිරීම නිතිපතා ධාවනය කිරීමට අවශ්‍ය වේ (එක්කෝ යාවත්කාලීන කරන ලද නිතිපතා ධාවනය වන අතර මෙය ඔබගේ පද්ධතිය අපහසු වේලාවන්හි මන්දගාමී කරයි, නැතහොත් සොයා ගැනීම තවදුරටත් එහි නොමැති ලිපිගොනු වෙත යොමු දැක්වීම් පෙන්වයි). ඒ නිසා මම සිතන්නේ ස්ථානගත කිරීම / යාවත්කාලීන කිරීම වෙනුවට (වඩා බලවත්) සොයා ගැනීම හුරු කරවීම වඩා හොඳ වනු ඇති බවයි.
amo-ej1

9
සොයා ගැනීම බොහෝ දේ සඳහා ප්‍රයෝජනවත් වන අතර, එය සෑම විටම ගොනු පද්ධතිය හරහා යා යුතුය. ඔබ සොයන ස්ථාන පටු කිරීමට ඔබට හැකි නම්, එය හොඳයි. සොයා ගැනීමේ වාසිය නම් එහි දත්ත සමුදාය තබා ගැනීමයි, එබැවින් සෑම අවස්ථාවකම සෙවීම අවශ්‍ය නොවේ. විශාල සහ / හෝ දුරස්ථ ගොනු පද්ධති සමඟ මෙය විශේෂයෙන් වැදගත් වේ. මම හිතන්නේ සෑම කෙනෙකුම එහි ස්ථානයක් ඇත.
කීත් බී

2
මුලින්ම locateOS X පෙට්ටියක ධාවනය වන විට එය ඔබට ධාවනය කිරීමට කියයි sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist.
viam0Zah

14
ඔබ භාවිතා කිරීමට අවශ්‍ය දේ මත පදනම්ව , ස්පොට්ලයිට් දත්ත සමුදාය සෑම විටම පාහේ යාවත්කාලීනව පවතින බැවින් සහ සොයා ගැනීමට වඩා වැඩි ක්‍රියාකාරිත්වයක් ලබා දෙන බැවින්, ස්පොට්ලයිට් locateවෙත විධාන රේඛා අතුරුමුහුණත භාවිතා කිරීම ඔබට වඩාත් පහසු වනු mdfindඇත. man mdfind
පෝල් ආර්

Answers:


338

එය locate.updatedbමැක්හි ඇත.

sudo /usr/libexec/locate.updatedb

වැඩි විස්තර සඳහා locate.updatedb man පිටුව බලන්න .


9
එම manපිටුව ද කියා සිටින්නේ: එය සාමාන්‍යයෙන් සතියකට වරක් /System/Library/LaunchDaemons/com.apple.locate.plist කාර්යය මඟින් ක්‍රියාත්මක වේ. ( man locateඑම ස්ක්‍රිප්ට් එක ගැන කෙනෙකුට කියයි: /usr/libexec/locate.updatedb ස්ථානගත දත්ත ගබඩාව යාවත්කාලීන කිරීම සඳහා ස්ක්‍රිප්ට් )
අර්ජන්

5
R අර්ජන්: එය සතියකට වරක් ධාවනය කළ යුතු නමුත් පෙරනිමිය එය අක්‍රීය කර ඇති අතර එය කළ යුතු වේලාව ඉරිදා අලුයම 3 යි (හෝ ඒ හා සමාන දෙයක්), එය ඇත්තෙන්ම ප්‍රයෝජනවත් නොවේ :)
ශිෂ්‍ය

ලිනක්ස් වලදී මම සාමාන්‍යයෙන් ධාවනය කරන්නේ i / o පාලකය මනාව බෙදා ගැනීමට sudo ionice -c3 updatedbපවසන updatedb(io නියමයි) නමුත් මෙම විධානය මැක් වෙතින් ලබා ගත හැකි යැයි මම නොසිතමි. -rGNU ස්ථානය සමඟ භාවිතා කළ හැකි නිත්‍ය ප්‍රකාශන ධජය තිබීම මට මග හැරී ඇත, නමුත් මට හෝම්බ rew භාවිතා කිරීමට අවශ්‍ය බව මට විශ්වාස නැතත් @Grogs
cwd

3
ස්ථානීය ආලෝකය භාවිතා කරන "ස්ථානගත කිරීම (-r)" සහ "යාවත්කාලීන බී" සඳහා උදාහරණ මැකෝස් විකල්පය ("-i" විකල්පයක් නොවේ): mdfind -name "mp4" | egrep -i "^ / පරිශීලකයන් * භාගත /.* නොපෙනෙන,."
මයිකල්

එසේම, ඔබ අපේක්ෂා කරන ලිපිගොනු සොයාගත නොහැකි නම්, මෑන්පේජ් හි බග්ස් අංශයෙන් මෙම අදාළ අවවාදය සටහන් කරන්න : The 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
ජින්ඩාල්

87

විධානය ලබා sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedbගැනීමට ඔබට කළ updatedbහැකිය.


හෙහ්, මම මෙය අදහස් දැක්වීමක් ලෙස පළ කළා .. එහෙනම් ඔබ මෙය පැවසූ බව දුටුවා. මම හිතන්නේ මේක හදන්න ලස්සන පොඩි මෝඩ් එකක්. :)
ජේම්ස් ටී ස්නෙල්

4
නැතහොත් එය ඔබගේ .bash_profile හි අන්වර්ථ කරන්න
ජිම් ජොන්සන්

20

පුද්ගලිකව, මම දැන් සොයාගැනීම් ස්ථාපනය කර ඇත (මැක්පෝර්ට්ස් හෝ හෝම්බ rew භාවිතා කරන්න).

එවිට ඔබට GNU locate සහ updateb ඇත.

යාවත්කාලීන කිරීම sudo නොමැතිව ක්‍රියා නොකරනු ඇත.

පුද්ගලිකව මම කැමතියි එක් පරිශීලකයෙකු සිටින ස්ථානයක සිටියත්; ඔබ සුඩෝ නම් අනෙක් පරිශීලකයින් ඔබගේ සියලුම ලිපිගොනු වල නම් / ස්ථාන දැන ගනු ඇත.

මට දුවන්න ක්‍රෝන් වැඩක් තියෙනවා:

updatedb --localpaths='/Users/grogs' --output='/Users/grogs/tmp/locatedb'

මගේ .zshrc .bashrc / .bashprofile:

export LOCATE_PATH="~/tmp/locatedb"


3
OS X Mavericks හි බ rew- ස්ථාපනය කරන ලද සොයාගැනීම් මට gupdatedbඅණක් මිස updatedbඑකක් නොවේ . අවාසනාවට මෙම විධානය මට මෙහි විස්තර කර ඇති දෝෂයක් ලබා දී ඇත (ඔබේ SO පිළිතුර සඳහන් කර ඇති තැන). අවසානයේ මම aliased තියෙනවා updatedbකිරීමට LC_ALL=’C’ sudo updatedbසලසන වක් මගක් ලෙස, නමුත් මම දන්නේ නැහැ මේ සදහා දිගු කාලීන විසඳුමක් නම්.
ඩේවිඩ් රිවර්ස්

2
/opt/local/libexec/gnubinඔබට අවශ්‍ය නම් coreutilsසහ findutilsස්ථාපනය කර macportsඒවායේ මුල් නම් ලබා ගත හැකි නම් (සහ ඒවායේ පෙර gසැකසූ අනුවාද නොවේ) ඔබේ මාවතේ ආරම්භයේදීම එක් කරන්න .
අයොනිස් ෆිලිපිඩිස්

2

ඔබ මුලින්ම දත්ත සමුදාය යාවත්කාලීන නොකර ස්ථානගත කිරීම ක්‍රියාත්මක කරන්නේ නම්, මෙහෙයුම් පද්ධතියේ නිර්දේශිත මාර්ගය එහි ප්‍රතිදානය මඟින් බැලීමට ඔබට අවස්ථාවක් තිබේ.

WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

0

ඇත්ත වශයෙන්ම ඔබට මැක් හි GNU Locate & update භාවිතා කළ හැකිය.

brew install findutils --with-default-names

export PATH="$(brew --prefix findutils)/libexec/gnubin:$PATH"
export MANPATH="$(brew --prefix findutils)/libexec/gnuman:$MANPATH"

which locate
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.