2015-02-06 110 views
0

我製作了一個安裝程序的rpm程序包,它需要將文件複製到的一個文件夾是symbolic link,因爲符號鏈接指向的程序可能隨時間而改變所以通過將文件複製到symbolic link而不是硬編碼路徑來維護rpm包的構建更容易。但是,我得到的錯誤安裝rpm並將文件放入符號鏈接目錄中

cp: cannot overwrite directory with non-directory 

rpm包試圖將文件複製到符號鏈接文件夾。爲什麼會發生這種情況,有什麼我可以做的,以解決這個錯誤,然後將文件複製到symbolic link指向的文件夾?我正在運行RHEL 6.6

+0

失敗的cp行看起來像什麼?目標上是否有斜線? – 2015-02-06 14:10:52

+0

它說無法用/ foo/opt/tomcat/bin/setenv.sh覆蓋目錄'/ opt/tomcat/bin – jgr208 2015-02-06 14:21:56

+0

我詢問spec文件中的行而不是錯誤。 – 2015-02-06 14:38:06

回答

1

這個錯誤通常意味着像你告訴cp將目標視爲正常文件(參數-T)。

$ 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 
相關問題