簡體   English   中英

cp命令在Linux中失敗

[英]cp command failing in Linux

我在RHEL 5中執行shell腳本時遇到復制命令問題。

執行的命令是

cp -fp /fir1/dir2/*/bin/file1 `find . -name file1 -print`

錯誤是

cp: Target ./6e0476aec9667638c87da1b17b6ccf46/file1 must be a directory

您能否提出一些想法,為什么會失敗?

謝謝羅伯特。

當使用兩個以上文件名作為參數調用cp ,它將最后一個作為目標目錄,並將其他參數中命名的所有文件復制到該目標目錄中。 因此,例如

cp file1 file2 dir3

將創建dir3/file1dir3/file2 看來,在您的情況下,模式/fir1/dir2/*/bin/file1匹配多個文件名,因此cp試圖將find結果視為目標目錄-並非如此-並失敗。

您不能將許多文件復制到一個位置,除非該位置是一個目錄。

因此應使用cp sourcefile destinationfilecp sourcefile destinationfilecp source1 source2 destinationdir

正如其他人所說,您不能使用cp將多個文件復制到一個文件。 另一方面,如果要將多個文件的內容一起附加到一個目標文件中,則可以使用cat

例如:

cat file1 file2 file3 > destinationfile

不知道自己要達到的目標很難回答。

例如,如果您要將目錄結構中所有名為“ file1”的文件復制到目標位置/ tmp,並在其中構建相同的目錄結構,則此命令可以解決問題:

cd /dir1/dir2
find . -name file1 | cpio -pvd /tmp

您不能將多個文件復制到一個文件中,只能復制到一個目錄,即

cp file1 file2 file2 file4 

是不可能的,你需要

cp file1 file2 file2 dir1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM