사용자 지정 실행 파일 또는 스크립트를 넣을 Unix 표준 디렉토리? [닫은]


79

내가 직접 만들었거나 웹에서 다운로드 한 사용자 지정 셸 스크립트 또는 프로그램이 있고 CLI에서 실행할 수 있도록하려면이를 Linux / Unix 디렉토리 구조에 넣을 표준 위치가 있습니까?

/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?

나는 일반적으로 ~ / bin 폴더에 넣고 PATH에 넣지 만 깨끗하지 않은 것 같습니다. 새로운 프로그램을 다운로드 할 때마다 PATH에 다시 넣어야합니다.


17
나는 제안한다 man hier.
Greg Hewgill 2012

4
~ / bin이 PATH에 있으면 ~ / bin에 넣은 모든 프로그램도 경로에 있어야합니다. PATH에 다시 넣어야한다는 의미는 무엇입니까?
tpg2114

@ tpg2114에 동의하며 ~/bin사용자 소유 셸 스크립트를위한 좋은 위치입니다.
Niklas B.

프로그램을 다른 하위 폴더에 넣었습니다 : ~ / bin / xyz, ~ / bin / abc. 그래서 나는 그것들 각각을 PATH에 넣어야합니다.
atedja

1
그때 어디에 두든 똑같이해야합니다. / usr / bin / xyz를 넣으면 경로에도 추가해야합니다.
tpg2114

답변:


87

/usr/local/bin이 목적, 시스템 전체 설치를 위해 존재합니다. 귀하의 개인적인 사용을 위해 ~/bin사실상 표준입니다.

각 바이너리를 자체 하위 디렉토리에 보관하려면 그렇게 할 수 있으며 .NET Framework에 이미있는 디렉토리에 심볼릭 링크를 추가 할 수 있습니다 PATH. 예를 들어

curl -o $HOME/downloads/fnord http://fnord.example.com/script.exe
ln -s $HOME/downloads/fnord $HOME/bin/

제공은 $HOME/bin당신입니다 PATH. (이 작업 stow을 수행하는 도구 가 있습니다.


3
Mac 사용자를위한 팁 : ´ ~ / bin´을 선택하고이 디렉토리가 i Finder를 표시하지 않도록하려면 SETFILE (1)을 사용하여 보이지 않게 할 수 있습니다 . ´setfile -a V ~ / bin´ for making invisible 및 ´setfile -av ~ / bin´은 다시 표시합니다. 이를 위해서는 Xcode 도구 가 필요합니다 .
Henrik

감사합니다. sudoers에 대한 sbin도 기억하십시오.
m3nda 2015 년

@tripleee : 스크립트 (bash, perl 등)에 대한 사실상의 표준 디렉토리가 있습니까? 예를 들어 ~ / etc를 생각하고 있습니까? 요점은 스크립트 및 바이너리와 같은 방식으로 cvs / ..로 백업 / 추적하지 않는다는 것입니다.
phs

2
@phs bin는 모든 종류의 실행 파일, 스크립트 또는 적절한 바이너리를위한 것입니다. 직접 버전 제어를 원하면 모든 버전을 버전 제어에 넣는 bin것이 확실한 옵션입니다. 더 일반적으로, 각각 또는 최소한 각 개별 그룹에 대해 별도의 프로젝트가 있습니다. 새 버전을 출시 할 때 자신의 bin. 또는 개 먹이에 대해 진지하게 생각하거나 인생에서 놀라움이 너무 적다면 개발 버전에 대한 심볼릭 링크를 bin.
tripleee

감사합니다. ln -s / usr / local / bin / root /를 수행하여 실행 파일을 더 잘 추적하고 두 표준을 모두 준수합니다.)
capitano666

17

이것은 Unix의 맛에 따라 약간 다를 수 있습니다. 나는 여기에서 Linux를 가정하고있다 (이것이 OSX에 적용될 수 있지만). FHS (Filesystem Hierarchy Standard) 에 따르면 ( Linux Standard Base 작업 그룹 에서 얻은 링크 ) :

/usr/local계층은 로컬 소프트웨어를 설치하는 시스템 관리자가 사용할 수 있습니다. 시스템 소프트웨어를 업데이트 할 때 덮어 쓰지 않도록 안전해야합니다. 호스트 그룹간에 공유 할 수 있지만에서 찾을 수없는 프로그램 및 데이터에 사용할 수 있습니다 /usr.

로컬로 설치된 소프트웨어 내에 배치해야 /usr/local보다는 /usr이 교체하거나 소프트웨어를 업그레이드하기 위해 설치되는 경우를 제외 /usr.

/usr/local/bin 기본적으로 경로에있는 경우가 많습니다.

실행 파일이나 링크 만 넣어야 /usr/local/bin하며 나머지는 /usr/local/lib또는 에 넣어야 할 수도 있습니다 /usr/local/share.

/opt나무는 분별 수 있습니다 :

/opt 애드온 애플리케이션 소프트웨어 패키지 설치용으로 예약되어 있습니다.

/ opt에 설치할 패키지는 별도의 /opt/<package>또는 /opt/<provider>디렉토리 트리 에서 정적 파일을 찾아야합니다 . 여기서은 <package>소프트웨어 패키지를 설명하는 이름이며 <provider>공급자의 LANANA 등록 이름입니다.

[...]

/ opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib 및 / opt / man 디렉토리는 로컬 시스템 관리자 용으로 예약되어 있습니다. 패키지는 로컬 시스템 관리자가 이러한 예약 된 디렉토리에 (링크 또는 복사하여) 배치 할 "프론트 엔드"파일을 제공 할 수 있지만 이러한 예약 된 디렉토리가없는 경우 정상적으로 작동해야합니다.

(당신은에서 자신의 링크를 만들 수 /opt/your-package/bin/executable/opt/bin, 넣어 /opt/binPATH이를 이미 없으면.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.