설정 밤은 왜 '), 말할 수 없다 별명 사용 예와
alias foreachpath="python -c \"import os,sys;[os.system(' '.join(sys.argv[1:]).format(p)) for p in os.getenv('PATH').split(':')]\""
는 :
foreachpath echo {}
이 방법의 장점은 {}
연속으로 각 경로에 의해 대체되어야한다는 것이다. 예를 들어, 디렉토리에있는 모든 파일 및 디렉토리의 크기를 $PATH
에 나열하는 등 모든 종류의 명령을 생성하는 데 사용할 수 있습니다. 이름에 공백이있는 디렉토리를 포함 : 여기
foreachpath 'for e in "{}"/*; do du -h "$e"; done'
것은 $HOME/.allbin
에 $PATH
에있는 모든 파일 및 디렉토리에 대한 심볼릭 링크를 생성하여 $PATH
변수의 길이를 단축 한 예이다. ... 이것은 일상적인 사용에 대한 유용한 아니라, bitbake
명령 줄의 일부로서 전체 $PATH
를 사용하기 때문에 당신이하는 docker
용기에 too many arguments
오류 메시지가있는 경우 는 유용 할 수 있습니다
mkdir -p "$HOME/.allbin"
python -c "import os,sys;[os.system(' '.join(sys.argv[1:]).format(p)) for p in os.getenv('PATH').split(':')]" 'for e in "{}"/*; do ln -sf "$e" "$HOME/.allbin/$(basename $e)"; done'
export PATH="$HOME/.allbin"
이해야 또한 이론적으로는 실행되는 모든 명령을 검색 할 경로가 적기 때문에 일반 셸 사용과 셸 스크립트의 속도를 높입니다. 그것 은 꽤 해키지만, 나는 그렇게하지 않는 것이 좋습니다. 누구나은 $PATH
이렇게 짧게하는 것이 좋습니다.
foreachpath
별칭이 유용 할 수 있습니다.
공백이 있으면 어떨까요? –
$ PATH가 공백이 아닌 구분자를 사용하는 이유는 정확하게 부분 문자열에 공백이 포함되어있는 경우에 가장 잘 이해할 수 있습니다. @ choroba의 대답은이 점에있어서 정확합니다. – intelfx
@intelfx : 질문에 [tag : linux]라는 태그가 붙어 있습니다. Linux에서 * MANPATH *에 공백이 있으면 Linux를 잘못 처리하고있는 것입니다. Q.E.D. –