2015-02-06 4 views
0

프로그램을 설치하는 rpm 패키지를 만들었고 심볼릭 링크가 가리키는 프로그램이 시간이 지남에 따라 바뀔 수 있으므로 파일을 복사하는 데 필요한 폴더 중 하나는 symbolic link입니다. 하드 코딩 된 경로가 아닌 symbolic link에 파일을 복사하여 rpm 패키지의 빌드를 유지하는 것이 더 쉽습니다. rpm 패키지는 심볼릭 링크 폴더에 파일을 복사하려고 할 때 그러나, 나는 오류를rpm을 설치하고 심볼릭 링크 디렉토리에 파일 넣기

cp: cannot overwrite directory with non-directory 

를 얻을. 왜 이런 일이 일어나고이 오류를 해결하기 위해 할 수있는 일이 있습니까? 그 외의 경우 파일을 symbolic link이 가리키는 폴더에 복사해야합니까? 나는 참고로 RHEL 6.6을 실행 중입니다.

+0

실패한 'cp' 행은 정확히 어떻게 보입니까? 목표물에 슬래시가 있습니까? –

+0

그것은/opt/tomcat/bin 디렉토리를/foo/opt/tomcat/bin/setenv.sh로 덮어 쓸 수 없다고 말합니다. – jgr208

+0

spec 파일의 줄에 오류가 아닌지 묻고있었습니다. –

답변

1

이 오류는 일반적으로 대상을 일반 파일 (-T 인수)로 처리하도록 cp에 지시 한 것과 같습니다.

$ ls -lR 
.: 
total 16 
drwxr-xr-x 2 root root 4096 Feb 6 09:46 dir 
-rw-r--r-- 1 root root 0 Feb 6 09:45 file 
lrwxrwxrwx 1 root root 3 Feb 6 09:45 symdir -> dir 

./dir: 
total 0 
$ cp -T file symdir 
cp: cannot overwrite non-directory `symdir' with non-directory 
$ ls -lR 
.: 
total 16 
drwxr-xr-x 2 root root 4096 Feb 6 09:46 dir 
-rw-r--r-- 1 root root 0 Feb 6 09:45 file 
lrwxrwxrwx 1 root root 3 Feb 6 09:45 symdir -> dir 

./dir: 
total 0 
$ cp file symdir 
$ ls -lR 
.: 
total 16 
drwxr-xr-x 2 root root 4096 Feb 6 09:46 dir 
-rw-r--r-- 1 root root 0 Feb 6 09:45 file 
lrwxrwxrwx 1 root root 3 Feb 6 09:45 symdir -> dir 

./dir: 
total 4 
-rw-r--r-- 1 root root 0 Feb 6 09:46 file