ලිනක්ස් හි නාමාවලිය සොයා ගන්නේ කෙසේද?


472

මට Suse Linux 10.3 සමඟ VPS එකක් තිබේ.

මම SSH / putty හරහා පුරනය වී ඇති අතර මගේ වෙබ් ලිපිගොනු පිහිටා ඇති ස්ථානය සොයා ගැනීමට උත්සාහ කරමි.

මම httpdocs නමින් නාමාවලියක FTP හරහා උඩුගත කරන බැවින් , මෙම නාමාවලිය කොතැනක හෝ පවතින බව මම සිතමි .

මගේ ගූගල් සෙවුම් මට මෙය කිරීමට උගන්වා ඇත, මගේ මූල නාමාවලිය වෙත ගොස් ටයිප් කරන්න:

find httpdocs -type d

නමුත් එය " එවැනි ගොනුවක් හෝ නාමාවලියක් නැත " යනුවෙන් පවසයි.

මෙම නාමාවලිය සොයා ගන්නේ කෙසේද?


5
යමෙකු පුදුම වන්නේ නම්, ප්‍රශ්නයේ විධානය මඟින් සියලුම නාමාවලි ( -type d) නාමාවලි ප්‍රවේශයේ httpdocs(වර්තමාන වැඩ කරන නාමාවලියට සාපේක්ෂව, සාමාන්‍යයෙන් නමුත් අවශ්‍යයෙන්ම නාමාවලියක් නොවේ) සොයා ගනී. httpdocsපද්ධතියේ මූල නාමාවලියෙහි නාමාවලි ඇතුළත් කිරීමක් නොමැති නිසා එය දෝෂ පණිවිඩයකින් අසමත් වේ , එබැවින් සෙවීම සඳහා ආරම්භක ස්ථානයක් නොමැත.
ඩැනියෙල් බෙක්

Answers:


647

එය:

find / -type d -name 'httpdocs'

පළමු පරාමිතිය "/" යනු බැලිය යුතු ස්ථානයයි, මේ අවස්ථාවේ දී "/" එය සමස්ත පද්ධතියම වේ.

නඩුව නොසලකා හැරීමට -name විය හැකිය

-type අනිවාර්ය නොවේ

භාවිතා කරන්න: මිනිසා තවත් විකල්ප සොයා ගනී


93
සරල සෙවීම් සඳහා එය වැදගත් නොවනු ඇත, නමුත් වඩාත් සංකීර්ණ සොයාගැනීම් සඳහා, ඒවා විධාන රේඛාවේ ඇති අනුපිළිවෙලින් ඇගයීමට ලක් කිරීම වටී. එබැවින්, දේවල් වේගවත් කිරීම සඳහා -name ට පෙර -type d (නාමාවලි පමණක්) ලබා ගැනීමට ඔබට අවශ්‍ය විය හැකිය. නැවතත්, මෙය මෙහි එතරම් වැදගත් නොවනු ඇත, නමුත් වඩාත් සංකීර්ණ සෙවීම් වලට පිවිසෙන විට එය සෙවුම් වේගය සැලකිය යුතු ලෙස වැඩි දියුණු කළ හැකිය.
ඩොමිනික් ඊඩ්සන්

14
ඇත්ත වශයෙන්ම, ඩිරෙක්ටරියේ ලැයිස්තුගත කිරීම හා සැසඳෙන -nameබැවින් පරීක්ෂණය අනෙක් බොහෝ පරීක්ෂණ වලට වඩා වේගවත් -nameවන අතර එය දැනටමත් තැටියෙන් පටවා ඇති අතර අනෙක් පරීක්ෂණ stat(2)ගොනු තොරතුරු ලබා ගැනීම සඳහා සිදු කළ යුතුය. stat()ගොනුවක් සඳහා පළමු ඇමතුමෙන් පසුව, පසුව කරන ලද පරීක්ෂණ මතකයෙන් ලබා ගනී, උදා : -type f -mtime -10.
Arcege

24
ඔබ සමස්ත ගොනු පද්ධතියේම, විශේෂයෙන් සේවාදායකයක් niceසොයා ගැනීමට යන්නේ නම්, සාමාන්‍යයෙන් එය භාවිතා කිරීම හොඳය, එබැවින් සොයා ගැනීම වඩාත් තීරණාත්මක ක්‍රියාවලීන්ගෙන් වැඩි සම්පත් ප්‍රමාණයක් nice find / ...
නොගනී

18
මගේ සෙවුම් ප්‍රති results ල සියලු අවසර දෝෂ වල සඟවා නොගැනීම සඳහා මම 2> / dev / null එකතු කරමි.
ජේසන් යෙෝ

මම කැමතියි iname.
neverMind9

64

මෙම විධානය මඟින් ඔබ සොයන දේ ඔබට ලැබෙනු ඇත:

find / -type d -name httpdocs

එය ඔබේ සේවාදායකයේ මුල සිට httpdocs නමින් නාමාවලි සඳහා සොයනු ඇත හෝ ඔබට දැනට පවතින නාමාවලියෙන් සෙවීමට අවශ්‍ය නම් '/' වෙනුවට 'ආදේශ කරන්න.'

ඔබට උත්සාහ කළ හැකි තවත් විධානයක් නම් ඔබ එවැනි දෙයක් කරන බව සොයා ගැනීමයි:

locate httpdocs

locate httpdocs මට කියනවා "loc: command not found"
එඩ්වඩ් ටැන්ගුවේ

4
"Locate" විධානය භාවිතා කරන අයට (එය ඔබේ පද්ධතියේ පවතින බව සලකන විට), එය පෙනෙන දත්ත සමුදාය යාවත්කාලීනව පවතින බවට වග බලා ගන්න; සාමාන්‍යයෙන් සමහර ක්‍රෝන් රැකියාව එය බලා ගනී. එසේ නොමැතිනම්, "updateb" ධාවනය කරන්න (root වීම). ඉන්පසු ඔබට අවශ්‍ය "සොයාගන්න <somefile>" ධාවනය කරන්න. මෑතකදී එකතු කරන ලද ලිපිගොනු / ඩර් සොයා ගැනීම සඳහා මෙය අවශ්‍ය වේ.
ඩේවිඩ් රමිරෙස්

සොයා ගැනීම සඳහා +1. එය බොහෝ වේගවත් නමුත් එහි දර්ශකය යාවත්කාලීන නම් පමණි. වාසනාවකට මෙන්, "httpdocs" වැනි දෙයක් නිතර ස්ථානය වෙනස් නොකරයි. ඔබ යන්ත්‍රයක ලිපිගොනු නැවත නැවත සෙවීමට සැලසුම් කරන්නේ නම්, යාවත්කාලීන කළ ක්‍රෝන් කාර්යය සැකසීමට මිනිත්තු කිහිපයක් අවශ්‍ය වේ.
ඩග් හැරිස්

1
බොහෝ අවස්ථාවන්හීදී, එම නාමාවලියෙහි ඇති සියළුම 100k ලිපිගොනු පෙන්වන බැවින්, සොයා ගැනීම බොහෝ ප්‍රති results ල ලබා දෙනු ඇත. මෙම විශේෂ අවස්ථාවෙහිදී, සෑම පරිශීලකයෙකුටම තමන්ගේම httpdocs 100 හෝ 1000 ලිපිගොනු තිබේ නම්, OP ට අවශ්‍ය ප්‍රති result ලය නැති වී යනු ඇත.
ජිස්තානිඩියට්

සොයා ගැනීම සඳහා +1 ... මම මගේ දත්ත සමුදාය යාවත්කාලීන කර තබන බැවින් මෙම විධානය ඉතා ප්‍රයෝජනවත් වේ ... නියම අදහසකි.
nicorellius

28
find / -type d -name httpdocs 2> /dev/null

මූල පරිශීලකයා ලෙස මෙය නොකරන විට ඔබට ලැබිය හැකි (කියවීමට, සැමවිටම) ඇති සියලුම වැරදි පණිවිඩ මෙය ඉවත් කරයි. එය මේ ආකාරයෙන් කිරීමට නිර්දේශ කරනු ඇත.


2
මෙම 2> /dev/nullවිකල්පය ඉතා ප්රයෝජනවත් වේ. එසේ නොමැතිනම්
අපේක්ෂිත ප්‍රති results ල


13

"සිද්ධි සංවේදී නොවන" රටා සෙවීම සහ ආදේශක කාඩ්පත් භාවිතය: *,?, ආදිය පරාමිතිය දැන ගැනීම වැදගත්ය.

උදාහරණ දෙකක්:

"ලිනක්ස්" නූල අඩංගු සියළු ලිපිගොනු / මූලයෙන් සොයන්න.

find  /root -type f -iname "*linux*"

"ලිනක්ස්" නූල අඩංගු වන / root වෙතින් සියලුම නාමාවලි සොයන්න.

find  /root -type d -iname "*linux*"

මෙතැනින් උපුටා ගන්නා ලදි:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


මෙම ප්‍රශ්නය ඔබ දන්නා නාමාවලියක් සොයා ගන්නේ කෙසේද යන්න ගැන මිස ඔබ දන්නා නාමාවලියක් සොයා ගන්නේ කෙසේද යන්න (දළ වශයෙන්). ඊට අමතරව, පිළිගත් පිළිතුර (මීට වසර 6 කට පෙර සිට!) දැනටමත් සඳහන් -inameකර ඇත්තේ සිද්ධි-සංවේදී නොවන විකල්පයක් ලෙස ය -name.
ජී-මෑන් පවසන්නේ 'මොනිකා නැවත

10

ඔබට එය බොහෝ දුරට තිබේ. නිවැරදි වාක්‍ය ඛණ්ඩය වනුයේ:

find / -type d -name httpdocs

නාමාවලිය බොහෝ විට යටතේ ඇත /var/www/


එයින් මට කියැවෙන්නේ “ප්‍රකාශන ප්‍රකාශනයට පෙර තිබිය යුතුය”
එඩ්වඩ් ටැන්ගුවේ
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.