Command-Line

如何“定位”多個文件並在vim中打開它們?

  • February 19, 2015

假設我有一個名為的文件filename123.txt,它是一個名為 so 的文件,我可以locate使用命令locate filename123. 它只返回這個文件。

現在我想用vi/打開它vim。但我不想去那個位置並鍵入vi命令後跟文件名。在這裡,我希望將結果locate filename123附加到 vi 命令。我該怎麼做?我已經嘗試過:

locate filename123 | vi

但這不起作用。這個錯誤出現在終端:

santosh@santosh:~$ locate filename123 | vi
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.

您可以使用xargs

locate filename123 | xargs vi

預設情況下,將盡可能少地執行指定命令的實例,並根據系統的ARG_MAXxargs傳遞盡可能多的參數。要限制傳遞給 的實例的參數數量,請使用’選項。vi``xargs``-n

要處理包含空格的文件名,請使用xargs-d選項:

locate filename123 | xargs -d '\n' vi

要處理包含換行符的文件名,請使用xargs-0選項和locate-0選項:

locate -0 filename123 | xargs -0 vi

(如果-0它們中的任何一個都不可用,請--null也檢查一下,或者以其他方式將字元指定\000為分隔符。)

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