Less

少 ‘+>’ /path/to/file

  • April 12, 2014

所以Gilles 在聊天室裡提到:

less '+>' /path/to/file

可用於以less反向查看文件。我以前從未見過它。

我很好奇 -+>標題中的操作員是怎麼回事?這是 less特定的語法嗎?可以用別的嗎?有沒有我可能應該知道的類似運營商?

它是less特定的(您可以使用運算符周圍的引號來猜測這一點,以避免 shell 解釋它)。該+參數告訴less在打開文件後應用此命令,在這種情況下>,這是進入文件末尾的擊鍵。您可以通過打開一些(長)文件less並點擊>. +>只是一個捷徑。你會發現一個相當常見的案例是呼叫less +## /path/to/filewhere ##is a line number 你想用less.

至少+##也適用於viand emacs

很久很久以前,有幾個程序將命令行參數(例如)理解為“從第N行開始”(不是“跳過N行”,而是“跳過N -1 行”,因為第一行是第 1 行)。我能找到的最古老的痕跡是在Unix V7中,但我不確定這就是開始使用的地方。具有相同選項的重要程序更多。其他從 more 繼承此語法的程序包括lessvi和當今大多數其他文本編輯器。+*N*``+42tail

隨著時間的推移,這種語法逐漸被普遍化。到 1980 年的 2.8BSD,更多的還支持從包含指定模式的第一行開始。到 1985 年的 2.10BSD,vi支持在啟動時執行任意命令,泛化(並非所有版本的 vi 都支持這一點,例如POSIX僅指定,但 nvi、Elvis 和 Vim 支持)。這些命令是ex命令,即您可以在 . 之後鍵入的內容。+/*PATTERN*``+*COMMAND*``+/*PATTERN*``-c *COMMAND*``:

Less 也支持泛化(我不知道從什麼時候開始,但那是在 20 世紀)。在 的情況下,就好像您在 less 開始後鍵入了字元作為輸入,除非在特殊情況下等效於並且您可以省略 final 。+*COMMAND*``+``+*N*``+g``+/*PATTERN*``Return

less '+>' /path/to/file是該用法的一個範例:>啟動後執行命令(轉到文件末尾)。你也可以寫less +GsinceG>are 同義詞。您可以組合命令,例如less $'+>?foo\r' /path/to/file轉到最後一次出現的foo.

另一種讓 Less 在啟動時執行命令的方法是將它們填充到LESS環境變數中:LESS='+>' less /path/to/file. less如果由另一個程序man(例如:閱讀和搜尋長手冊頁)呼叫,這很有用。

引用自:https://unix.stackexchange.com/questions/123582