I have some long log files. I can view the last lines with tail -n 50 file.txt, but sometimes I need to edit those last lines.

How do I jump straight to the end of a file when viewing it with nano?

  • 4
    Try out vim :-P – Hunter.S.Thompson Jan 31 at 9:55
  • 3
    @Hunter.S.Thompson This was intended for non-hardcore users (lol) – Marko Pacak Jan 31 at 9:57
  • @Hunter.S.Thompson That does not work! You are using a user defined command! But now try out vim in a portable way G – Volker Siegel Jan 31 at 10:17
  • 1
    @VolkerSiegel I can't tell whether you're being sarcastic, but it's not a user-defined command. It's an emoticon. We used to use these things before someone let Unicode smoke weed. – NieDzejkob Jan 31 at 16:19
  • Sarcastic, of course! I tried your command: : to open command line, than -, P and enter. That's what I got: "E464: Ambiguous use of user-defined command". All the best! – Volker Siegel Jan 31 at 16:26
up vote 20 down vote accepted

Open the file with nano file.txt.

Now type Ctrl + _ and then Ctrl + V

  • 6
    You can also do Ctrl+W, Ctrl+V - depending on what is more comfortable for your hands :) – psmears Jan 31 at 18:00

Many editors support the +NNN option on the command line to jump directly to line NNN. Luckily for you, nano appears to jump to the end if the line number given is past the end of file, so you could use something like:

nano +999999 file

That also works in joe, but not in, e.g. less or VIM, they complain about going past EOF. (at least the ones on my system. less +G file and vi +$ file work in those.)

Of course something like $EDITOR +$(wc -l file) file would probably work in most editors, but that's a bit silly and involves reading the file twice.

  • Coders of nano could change their positioning argument behavior in the future. That's why I like ghaberek's answer more. – Vlastimil Feb 1 at 11:46
  • @vla, or we could post a patch to make +$ do the right thing. – ilkkachu Feb 1 at 11:54

From the built-in Nano help (^G):

M-\   (^Home)   Go to the first line of the file
M-/   (^End)    Go to the last line of the file

So, press Alt+\ to go to the first line or press Alt+/ to go to the last line.

  • This would be the equivalent of gg (start) or G (end) in vim.
  • This also states that Ctrl+Home or Ctrl+End should work, but that's never worked for me they seem to work natively on console/desktop but not via SSH using PuTTY.
  • The way I remember this is that / is near the bottom of the keyboard and \ is near the top.

If you want a command, you could write a function in your .bashrc or .bash_aliases to use the line count from wc:

function nano-end {
    # if the file exists, jump to the end
    # otherwise, just open an empty nano
    [ -f "$1" ] && nano +$(wc -l "$1") || nano
}

Now just type nano-end filename to open the file to its last line!

  • Don't use [[ .. ]] where unnecessary, in this instance an ordinary test command [ .. ] is appropriate. Further, don't use ` .. ` when the $( .. ) can be used. And don't forget to double quote the argument. – Vlastimil Feb 1 at 11:26

OP wants me to add an answer for jumping to the last line in vim.

ESC + ShiftG will get you to the beginning of the last line.

ESC + ShiftGA will get you to the end of last line and insert mode will be activated.

  • If you want to do this in insert mode, do C-o G. Not that you would want to do that if you were using vim right... – NieDzejkob Jan 31 at 16:21

Ctrl+End is working, if you have a recent compiled version of nano editor

If you don't know, how to do it, you may read Compiling Nano editor with options

You can see the manual page of nano to find out the answer yourself. Just type

man nano

And hit Enter.

I hope you'll find another exciting things too.

Note: Just press ^V to reach the end ...

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.