少 ‘+>’ /path/to/file
less '+>' /path/to/file
可用於以
less
反向查看文件。我以前從未見過它。我很好奇 -
+>
標題中的操作員是怎麼回事?這是less
特定的語法嗎?可以用別的嗎?有沒有我可能應該知道的類似運營商?
它是
less
特定的(您可以使用運算符周圍的引號來猜測這一點,以避免 shell 解釋它)。該+
參數告訴less
在打開文件後應用此命令,在這種情況下>
,這是進入文件末尾的擊鍵。您可以通過打開一些(長)文件less
並點擊>
.+>
只是一個捷徑。你會發現一個相當常見的案例是呼叫less +## /path/to/file
where##
is a line number 你想用less
.至少
+##
也適用於vi
andemacs
。
很久很久以前,有幾個程序將命令行參數(例如)理解為“從第N行開始”(不是“跳過N行”,而是“跳過N -1 行”,因為第一行是第 1 行)。我能找到的最古老的痕跡是在Unix V7中,但我不確定這就是開始使用的地方。具有相同選項的重要程序更多。其他從 more 繼承此語法的程序包括less、vi和當今大多數其他文本編輯器。
+*N*``+42
tail
隨著時間的推移,這種語法逐漸被普遍化。到 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 +G
sinceG
和>
are 同義詞。您可以組合命令,例如less $'+>?foo\r' /path/to/file
轉到最後一次出現的foo
.另一種讓 Less 在啟動時執行命令的方法是將它們填充到
LESS
環境變數中:LESS='+>' less /path/to/file
.less
如果由另一個程序man
(例如:閱讀和搜尋長手冊頁)呼叫,這很有用。