Command-Line
如何“定位”多個文件並在vim中打開它們?
假設我有一個名為的文件
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_MAX
xargs
傳遞盡可能多的參數。要限制傳遞給 的實例的參數數量,請使用’選項。vi``xargs``-n
要處理包含空格的文件名,請使用
xargs
’-d
選項:locate filename123 | xargs -d '\n' vi
要處理包含換行符的文件名,請使用
xargs
’-0
選項和locate
’-0
選項:locate -0 filename123 | xargs -0 vi
(如果
-0
它們中的任何一個都不可用,請--null
也檢查一下,或者以其他方式將字元指定\000
為分隔符。)