명령줄에서 '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

이제 이 스크립트를 실행하려면 명령 시작 부분으로 돌아갈 때까지 키를 누른 python다음 ls.

내가 이렇게 길게 홀드할 때 (자주 그런 것 같다) 나는 항상 생각한다.명령 문자열을 편집하거나 이전 명령의 출력을 실행하는 더 빠른 방법이 있어야 합니다.

그래서 저는 bash 슈퍼유저로서의 자격을 갖추지 못했기 때문에파이프의도한 대로 작동하지 않는 Python에 대한 ls의 출력:

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^pythonpython즉시 필요한 작업을 수행합니다( 을 대신 하여 이전 명령을 반복 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

Andrew의 답변 외에 알아두면 좋은 요령은 Ctrl+가 a커서를 줄의 시작 부분으로 이동한다는 것입니다.

관련 정보