如何從命令列執行“ls”的輸出?

如何從命令列執行“ls”的輸出?

有時我忘記了我的相對路徑,當我找到文件位置時,我已經輸入了:

Cris-Mac-Book-2:weird cris$ ls ../../../
Icon?       Research    Support
Cris-Mac-Book-2:weird cris$ ls ../../../Support
Fourganizical       PicoCryptical       SupportPlan.txt
MoneyProjectical    Qwontical       Testcomms
OSICAL          StanTechStatistical todo
Cris-Mac-Book-2:weird cris$ ls ../../../Support/PicoCryptical
S   cs  mini    php py  readme
Cris-Mac-Book-2:weird cris$ ls ../../../Support/PicoCryptical/py/StanTechPico.py

現在要運行此腳本,我發現自己一直按直到回到命令的開頭,然後替換pythonls.

當我進行這種長期持有時(這似乎是經常發生的),我總是在想,必須有一種更快的方法來編輯命令字串,或執行上一個命令的輸出。

所以,我並沒有真正有資格成為 bash 超級用戶,我嘗試管道ls 到 python 的輸出,沒有如預期工作:

Cris-Mac-Book-2:weird cris$ ls ../../../Support/PicoCryptical/py/StanTechPico.py | python
  File "<stdin>", line 1
    ../../../Support/PicoCryptical/py/StanTechPico.py
    ^
SyntaxError: invalid syntax
Cris-Mac-Book-2:weird cris$

所以我的問題是:如何將STDOUT上一個指令的輸出放在新指令的參數位置?

答案1

^ls^python將執行您的即時需求(重複先前的命令,python替換ls

答案2

我不確定你是否真的在問

但我想我真正想要的是知道如何從命令列將一個命令的 STDOUT 輸出放入另一個命令的參數位置?

我認為你可能會發現有用的是使用$_

$ ls /tmp/long/path/which/contains/file
/tmp/long/path/which/contains/file
$ python $_

$_替換為您執行的上一個命令的最後一個參數。

http://tldp.org/LDP/abs/html/internalvariables.html

但是,如果您確實想使用 stdout 作為另一個命令的參數,則可以使用xargs它(請參閱http://linux.die.net/man/1/xargs

$ ls /tmp/long/path/which/contains/file | xargs python

答案3

你用過反引號嗎?

python `ls ../../../somefile`

python使用 的輸出ls作為其參數進行呼叫。

不過,不完全確定這是否是您所要求的。

答案4

除了安德魯的答案之外,一個需要知道的好技巧是Ctrl+a將遊標跳到行首。

相關內容