අඩු විධානය ගතිකව නැවුම් කිරීමට ක්‍රමයක් තිබේද?


146

මම watchවිධානයට කැමතියි , නමුත් එයට එහි සීමාවන් ඇත.

මම ක්රියාකාරිත්වය සමාන වන හැකිද යන්න දැන ගැනීමට කුතුහලයෙන් watchසමග less. ධාවනය වන ස්ක්‍රිප්ටයක් හරහා ගතිකව වෙනස් වන බැවින් මගේ ඩිරෙක්ටරිය හරහා අනුචලනය කිරීමේ හැකියාව මම ප්‍රධාන වශයෙන් සොයමි.


tail -f foo.log | grep barවලිගය / ග්‍රෙප් නල මාර්ගය නැවත ආරම්භ කිරීමත් සමඟ grep විධානය ගතිකව වෙනස් කිරීමට මම බලාපොරොත්තු වෙමි .
ඇලෙක්සැන්ඩර් මිල්ස්

Answers:


132

තුළ less, Fගොනුවක් අවසානයේ කියවීම දිගටම කරගෙන යාමට ඔබට ටයිප් කළ හැකිය (වැනි tail -f); ඔබට :eවෙනත් ගොනුවක් බැලීමට ගොනු නාමයක් ටයිප් කළ හැකිය , නමුත් අවාසනාවකට මෙන්, ඔබ වත්මන් ගොනුවේ නම ඇතුළත් කළහොත් ගොනුව lessනැවත පූරණය නොකරයි. කෙසේ වෙතත් එය සබ්ජෙන්ටන් විසින් යෝජනා කරන ලද වත්මන් ගොනුව නැවත කියවීමට උපක්‍රමයක් ඇත : නොපවතින ගොනුවක නම ටයිප් :eකර ඇතුළත් කරන්න ; එමඟින් දෝෂ පණිවිඩයක් පෙන්වීමට අඩු වන අතර වත්මන් ගොනුව නැවත පූරණය කරන්න.

ඔබ විකල්පයක් සොයන්නේ නම් watch ls, මෙන්න කිහිපයක්:

  • නවීන ගොනු කළමණාකරුවන් (උදා: නාටිලස්, තුනාර්, කොන්කුවර්, ඩොල්ෆින්, සෙවුම) තථ්‍ය කාලය තුළ අදහස් නැවුම් කරයි.
  • Emacs හට තත්‍ය කාලීන නැවුම්බවක් නොමැත, නමුත් auto-revert-modeඑය සෑම තත්පර 5 කට වරක් ගොනුව හෝ නාමාවලිය නැවත පූරණය කරයි (ප්‍රමාදය වින්‍යාසගත කළ හැකිය).
  • W3m මූලික වශයෙන් වෙබ් බ්‍රව්සරයක් වුවද, එය සමත් කළ හැකි නාමාවලියක් සහ පෙළ ගොනු නරඹන්නෙකු කරයි. R(දේශීය) URL නැවත පූරණය කිරීමට ඔබන්න .

8
මට: e randomnamejkdlfjldf නොපවතින ගොනු නාමය පූරණය කිරීමට අපොහොසත් වී නැවත වත්මන් ගොනුවට නැවත පූරණය කරයි: D
sabgenton

1
ස්තූතියි, මම ඒක දැනගෙන හිටියේ නැහැ. ඒක නියම උපක්‍රමයක්. මම එය මගේ පිළිතුරට එකතු කළෙමි, නමුත් ඔබට එය ඔබගේම පිළිතුරක් ලෙස පළ කළ හැකිය (එය සයිඩ් පිළිගනී යැයි මම විශ්වාස කරමි).
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

1
@CMCDragonkai නැත, එකතු less +Fකළ අන්තර්ගතයන් සඳහා පමණක් බලා සිටී. :e nonexistentfileසම්පූර්ණයෙන්ම වෙනස් කළ ආදානය නැවත කියවීමට භාවිතා කරන්න .
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

1
ඒ සඳහා විධාන රේඛා ධජයක් තිබේද?
CMCDragonkai

3
APaulWagland නැත, Rගොනුව විශ්වාසදායක ලෙස නැවුම් නොකරයි. එය තිරය ප්‍රබෝධමත් කරන අතර සමහර ආදාන බෆරයන් පිස දමයි, නමුත් එය ඇත්ත වශයෙන්ම සෑම අවස්ථාවකම ගොනුවෙන් දත්ත නැවත පූරණය නොකරයි (ගොනුව විශාල නම් පමණක්ද? මම කේතයට ගැඹුරට හාරා නැත).
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

68

Shift+Fකරන්නෙමි lessසමාන tailf. එනම්, ගොනුවට තවත් දත්ත එකතු කළ හොත් එය ප්‍රබෝධමත් වේ.


8
මෙය ක්‍රියාත්මක වන්නේ උපග්‍රන්ථ සඳහා පමණක් බව සලකන්න . පේළි ඉවත් කර හෝ සංස්කරණය කර ඇත්නම්, lessඑම වෙනස්කම් නොපෙන්වයි.
නතානියෙල් එම්. බීවර්

1
පහත දැක්වෙන මාදිලිය නතර කර අනුචලනය කළ හැකි මාදිලිය නැවත ඇතුළත් කරන්නේ කෙසේද?
ටොම් හේල්

1
<kbd> Ctrl + C </kbd>
balki

2
balki මගේ අත්දැකීම නම්, ඔබ භාවිතා කරන්නේ නම් දත්ත පයිප්ප කිරීමේ විධානය මෙය විනාශ කරන $COMMAND | lessබවයි. මම හිතන්නේ මේ වටා හොඳ ක්‍රමයක් තිබේද? ඔබට වැනි දේවල් කළ හැකි $COMMAND > /tmp/file & less /tmp/fileනමුත් එය එතරම් හොඳ නැත.
Att Righ

TtAttRigh මම කිසි විටෙකත් මගේ විධානය මරා දැමුවේ නැත (කෙසේ වෙතත් මම මේ ආකාරයට ධාවනය වන විධාන
ලොග් කියවමි

44

සරලව ටයිප් කරන්න:

less +F filename

මෙය සංස්කාරකය තුළ "F" එබීම අනුකරණය කරයි.


1
ස්තූතියි; අන්වර්ථය alias check="less +F"මට එකතු කළේය .bashrc.
ලූක් ඩේවිස්

23

manපිටු ඉතා තොරතුරු සහිත විය හැකිය. ඔවුන් බිය නොවන්න. අනෙක් සියල්ල අතර, man lessඔබට පහත දැක්වෙන Rවිධානය භාවිතා කළ හැකි බව පවසයි :

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(මෙම ප්‍රශ්නය අවුරුදු 6 කට වඩා පැරණි බව මට වැටහී ඇත, නමුත් එය ගූගල් සෙවුම් වල එන බැවින් මෙහි පැමිණීමට සබැඳිය ක්ලික් කළ එකම පුද්ගලයා මම නොවේ.)


8
වෙනත් වැඩසටහනක ප්‍රතිදානය මගින් එය කඩාකප්පල් වූ විට මෙය තිරය නැවත වර්ණාලේප කරයි. එය නිරන්තරයෙන් ගොනුව නැවත පූරණය නොකරයි. කේතය කරන්නේ කුමක්දැයි බැලීමට මම ගැඹුරට හාරා නැත, පර්යේෂණාත්මකව කෙටි ලිපිගොනු නැවත පූරණය නොවේ. මම අනිවාර්යයෙන්ම මෑන් පිටු වලට බිය නොවී සිටිමි. මෙම විස්තරය දුර්වල වචන වලින් කියැවේ: “නැවත වර්ණ ගැන්වීම” මඟින් ආදානය නැවත කියවන බව නොකියන අතර සැබෑ හැසිරීම “ගොනුව වෙනස් වන්නේ නම් ප්‍රයෝජනවත්” නොවේ. (සමහර විට එය දෝෂය? විධානය කුමක් කළ යුතුදැයි මා නොදන්නා බැවින් මම නොදනිමි) ..
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

මම විශේෂ expert යෙක් නොවෙමි, අඩු ප්‍රභව කේතයක් කියවා නැත, නමුත් එය කරන්නේ එය ගොනුව ගැන දැනටමත් දන්නා දේ අමතක කර එය නැවත පූරණය කිරීම, එය නැවත පූරණය කරන ආදානය මත පදනම්ව එහි ප්‍රතිදානය ප්‍රබෝධමත් කිරීමයි. ප්රශ්නයෙහි "අඩු විධානය ගතිකව නැවුම් කිරීමට ක්රමයක් තිබේද?" පිළිතුරු දීමට පෙර මම ප්‍රශ්නයේ පැහැදිලි කිරීම වඩාත් විස්තරාත්මකව කියවා ඇත්නම්, මම පිළිතුරු නොදෙනු ඇත, මන්ද ඔවුන් "මගේ ඩිරෙක්ටරිය හරහා ධාවනය වන ස්ක්‍රිප්ටයක් හරහා ගතිකව වෙනස් වන බැවින් එය අනුචලනය කිරීමට අවශ්‍යය" යනුවෙන් පවසති. අඩුවෙන් ඒ සඳහා නිවැරදි විධානය නොවනු ඇත.
destenson

බයිට් 3 ක් දිග ලිපිගොනු භාවිතා කරන විට පවා මට හොඳින් ක්‍රියා කරයි. විශාල ලිපිගොනු සඳහාද එය ක්‍රියා නොකරන්නේ මන්දැයි මට සිතාගත නොහැකිය.
ඇඩිසන්

2
මහා! මට නම් එය කෙටි හා දිගු ලිපිගොනු සඳහා ක්‍රියා කරයි. සිදුවිය හැකි ගැටළු දෙකක් මම දුටුවෙමි: 1. lessගොනුව එහි ගොනු නාමය භාවිතා කර නැවත විවෘත නොකළේ - එනම් ගොනුවේ ඉනෝඩය වෙනස් වූ විට (ගොනුව නැවත ලිවීම වැනි mv) පසුව පැරණි ගොනු අන්තර්ගතය රැඳී තිබීම (බොහෝ විට පැරණි ඉනෝඩය නැවත කියවා තිබීම) - - 2. පළමු වරට පෙන්වන ලද පේළිය මුල් ගොනු අන්තර්ගතයේ ඇති බයිට් ඕෆ්සෙට් වලින් ආරම්භ වේ. එබැවින් පේළි දිග වෙනස් වන විට පළමු දර්ශනය වූ රේඛාව අසම්පූර්ණ විය හැකි අතර පෙන්වන රේඛා ඉහළට / පහළට ගමන් කළ හැකිය.
pabouk

2
Rසැමවිටම ක්‍රියා නොකරයි. Unix.stackexchange.com/questions/4351/…
wisbucky

5

ධාවනය වන විට "එෆ්" යතුර lessසමාන "අනුගමනය කිරීමක්" කරනු ඇත tail -f, නමුත් එය ඔබ මෙහි සොයන දේ සාක්ෂාත් කර ගනීදැයි මට විශ්වාස නැත.


5

මම සාමාන්‍යයෙන් Gඑකවර ප්‍රතිදානය වලිගය ලෙස ටයිප් කරන්නෙමි . CIFS වැනි aa ජාල ගොනු පද්ධතියක් හරහා එය විශේෂයෙන් ප්‍රයෝජනවත් බව මට පෙනේ.


මෙය අඩුවෙන් විවෘත කරන ලද ගොනුවේ ඉල්ලුමට සරිලන නැවුම්බවකි. ගොනුවේ අවසානයට පැනීමට අමතරව, එය වෙනස් වී ඇත්නම් එය නැවත පූරණය කරයි.
jorb

1
ස්තූතියි. පළමු වරට එය මට නැවුම්බවක් ලබා දුන්නේ නැත, නමුත් දැන් එය නිසියාකාරව ක්‍රියාත්මක වන බව පෙනේ. මිනිසා තුළ එය ගොනුව නැවුම් කරන බව ලියා නැත. man less: 'G හෝ> හෝ ESC-> ගොනුවේ N පේළියට යන්න, ගොනුවේ අවසානය පෙරනිමිය.' මම මගේ පැරණි වැරදි අදහස් මෙහි මකා දමමි, ඔවුන් ගැන කණගාටුයි.
යාරොස්ලාව් නිකිටෙන්කෝ

2
BTW, ඔබ 'එක්-කාලීන පදනමක්' ලෙස හඳුන්වන්නේ කුමක්ද? නඩත්තු lessකරන්නා වන මාර්ක් නූඩෙල්මන් පහත සඳහන් පිළිතුරට පිළිතුරු දුන්නේය: "G විධානය සාමාන්‍යයෙන් R විධානය මෙන් ගොනුව නැවත කියවීමට බල නොකරයි. G හි ගොනුවේ අවසානය තවමත් කියවා නොමැතිනම් එසේ කළ හැකිය. ගොනුවේ අවසානයට පැනීම පළමු වරට එහි දත්ත කියවිය යුතුය. නිදසුනක් ලෙස, ඔබ G සමඟ අවසානයට පනින්නේ නම්, 1G සමඟ ආරම්භයට ආපසු පනින්න, එවිට තවත් වැඩසටහනක් දත්ත වෙනස් කරයි ගොනුවේ අවසානය (දිග වෙනස් නොකර), "(cont)
යාරොස්ලාව් නිකිටෙන්කෝ

(cont) "එවිට ඔබ නැවත G සමඟ අවසානයට පනිනවා, ඔබට නවීකරණය කරන ලද දත්ත නොපෙනේ. නමුත් ඔබ අවසානයට හා පසුපසට ආරම්භයට නොඑන්නේ නම්, පළමු වරට ඔබ G විධානය ක්‍රියාත්මක කළ විට එය කියවිය යුතුය එහි දත්ත පළමු වරට, ඇත්ත වශයෙන්ම එය අඩුවෙන් ප්‍රථමයෙන් ආයාචනා කළ බැවින් සිදුවී ඇති ඕනෑම වෙනස්කමක් දකිනු ඇත. ”
යාරොස්ලාව් නිකිටෙන්කෝ

මෙම අවස්ථාවේ දී මම එය වීම සඳහන් එක් කාලීන වූ විරුද්ධ ලෙස නැවුම් ගතික මුල් ප්රශ්න අහනවා දේ කොටසක් වන නැවුම්.
jorb

4

Rනැවත වර්ණ ගැන්වීම සැමවිටම ගොනුව නැවත පූරණය නොකරයි. [1]

සෑම විටම ගොනුව නැවත පූරණය කරන ක්‍රියාමාර්ගයක් වන්නේ ඔබන්න hq, එය උදව් පිටුව විවෘත කර ඉවත්ව යනු ඇත. ගොනුව නැවත පූරණය කිරීමට බල කිරීමෙන් එහි අතුරු ආබාධයක් ඇත.


[1] Rනැවත පූරණය නොකරන හා සිදු නොකරන තත්වයන් සඳහා උදාහරණ කිහිපයක් මෙන්න :

  • >සහ >>වෙනස්කම්: නැවත පූරණය කරන්න
  • sed -i, gEdit, TextEdit: නැවත පූරණය නොකරන්න
  • ලිනක්ස් හි, viවෙනස්කම්: නැවත පූරණය කරන්න
  • මැක්හි, viවෙනස්කම්: නැවත පූරණය නොකරන්න

මම විශ්වාස කරන්නේ වෙනස ඉනෝඩය වෙනස් වේද යන්න (ඔබට පරීක්ෂා කළ හැකිය ls -i foo.txt). ඉනෝඩය වෙනස් Rවුවහොත් ක්‍රියා නොකරනු ඇත.


මම සැබවින්ම hqහැක් කිරීමට කැමතියි , නමුත් ඔබ කෙටි වන ගොනුවක අවසානය දෙස බැලුවහොත් එය lessඅසාර්ථක වන බව සලකන්න. (ඇත්ත වශයෙන්ම, ඔබ නව ගොනුවේ අවසානය පසුකර ඕනෑම තැනක සොයන්නේ නම්) තවත් එක් යතුරක් සමඟ, ඔබට එම බිඳවැටීම වළක්වා ගත හැකිය : ghq.
කාර්වර්

1

ගොනුව කියවීමට ඔබට vim භාවිතා කළ හැකි අතර පහත දැක්වෙන සිතියම්කරණය ඔබේ .vimrcගොනුවට එක් කරන්න, එවිට ඔබට පහසුවෙන් ගොනුවක් නැවත පූරණය කළ හැකිය ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

ඔබ දැනටමත් ගොනුව සංස්කරණය කර ඇත්නම්, vim පැමිණිලි කරනු ඇත. වෙත වෙනස් කරන්න

let mapleader = ","
nnoremap <leader>r :edit! <CR>

වෙනස්කම් නොසලකා හැරීම.


ඔවුන්ට vimඔබේ සීතල, මළ දෑතින් බැලීමට සිදුවේ . ප්‍රශ්නයේ සන්දර්භය ගැන ය less, නමුත් ඒකාකාරී ප්‍රවණතා ඇති අයෙකු ලෙස මම අනුකම්පා කරමි!
බෙන්ජමින් ආර්

0

ඔබට එය tail -fවෙනුවට පයිප්ප දැමිය හැකිය , එහි ප්‍රති result ලය වනුයේ ප්‍රතිදානය අනුගමනය කිරීමයි. ඔබේ ප්‍රතිදානය හරහා ගමන් කිරීමේ (අනුචලනය) කිරීමේ හැකියාව ඔබට අහිමි වනු ඇත.


0

වෙන කවුරුත් වගේ මට මේ ත්‍රෙඩ් එක හොයාගත්තා. ඔබ දැනටමත් ගොනුවේ අවසානයේ සිටින විට විසඳුම එක් කිරීමට මම කැමතියි, 'g' භාවිතා කිරීමෙන් පසුව 'G' භාවිතා කිරීමෙන් ගොනුව නැවත නැවුම් කිරීමට බල කෙරෙනු ඇත.

මගේ ටර්මිනල් වැඩසටහනේ (SecureCRT) මේ සඳහා සාර්ව බොත්තමක් සෑදීම මම අවසන් කළෙමි. සාර්ව සරලවම 'gG' වේ.

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.