리디렉션에 문제가 있습니다.
$ which python3
나에게주세요
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
그리고
$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
나에게주세요
lrwxr-xr-x 1 root admin 9 5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7
하지만
which python3 | ls -l
나에게 같은 결과를주지 마십시오.
이유를 아시나요? 올바른 리디렉션 명령은 무엇입니까?
저는 OSX를 사용하고 있습니다.
나는 다음 질문을 말해야 한다이전 명령의 출력을 다음 명령의 인수로 전달합니다.아마도 이것과 같을 것입니다. 그러나 주어진 답변을 보면 길을 잃습니다. 기능을 수행하려면 여기에 제공된 것보다 더 높은 수준의 지식이나 연구가 필요합니다.
답변1
ls
표준 입력에서는 입력을 받지 않고 매개변수에서만 입력을 받습니다.
노력하다ls -l "$(which python3)"
답변2
ls
파이프에서 읽지 않습니다. 실제로 ls
표준 입력은 전혀 사용되지 않습니다.
ls -l
대신 다음 명령줄을 통해 실행하려는 항목을 전달 해야 합니다 ls
.
ls -l "$( which python3 )"
이는 명령줄에서 명령 대체를 사용하여 ls -l
명령의 출력으로 확장됩니다 which
. 그러면 이는 명령줄 인수로 사용됩니다 ls
.
또는:
ls -l "$( command -v python3 )"
관련된:
답변3
다른 답변은 모두 좋지만 이것도 편리합니다.
which python3 | xargs ls -l
xargs
지정된 프로그램에서 값을 가져와 stdin
지정된 프로그램에 명령줄 인수로 추가합니다.