2009-10-15 2 views
0

제 고문은 여러 소프트웨어를/usr/local에 자주 컴파일 한 다음/usr/local을 tarball로 배포합니다. 그런 다음 우리 실험실 기계에 tarball을 추출해 사용합니다. 지금까지는 문제가 없었지만 이전의/usr/local을 tarball의 내용으로 바꿉니다.파일별로 디렉토리 트리 파일 복사

그러나이 컴퓨터에 내 소프트웨어를 설치하기 시작했습니다./usr/local을 지우면 해당 소프트웨어 및 구성 중 일부가 삭제됩니다.

대신 tarball의 파일을/usr/local에있는 해당 디렉토리로 재귀 적으로 복사 할 수 있습니까?

예 :

tarball path   filesystem path 
------------   --------------- 
local/bin/myprog -> /usr/local/bin/myprog 
local/lib/mylib.so -> /usr/local/lib/mylib.so 

또는 ServerFault에 대한 더 좋은 질문입니까?

+0

설정을 감안할 때를/가정/라이언/opt'? –

답변

1
$ cd /usr 
$ tar xvf f.tar 

또는

$ cd /tmp 
$ tar xvf f.tar 
$ cp -R local/. /usr/local/. 

정말하지만, 난 그냥 다른 디렉토리에 저장, 또는 /usr/local/의 하위 디렉터리에한다고 생각합니다. 아마도 기본 PATH 구성 요소를 제외한 /usr/local/에 대한 마법 아무것도하지 있습니다.

1

cp 명령이 반복적으로 복사하는 -r 플래그가 있습니다

$ cp -r local/* /usr/local/ 

자세한 내용은 CP에 대한 시스템의 메뉴얼 페이지를 검색하십시오.

0

k 옵션을 사용하여 파일 덮어 쓰기를 방지하기 위해 대상 지정은`도/opt``에서 자신의 소프트웨어를 설치하거나하는 것이 현명하지 않을 것,

$ cd /usr 
$ tar xvfk localtarball.tar local 
local/ 
local/file 
tar: local/file: Cannot open: File exists 
local/bar2/ 
local/bar2/bar3 
tar: local/file: Cannot open: File exists 
local/bar2a/bar2aY/ 
tar: Error exit delayed from previous errors 
관련 문제