而在RHEL執行shell腳本,我面臨的一個複製命令問題5.cp命令在Linux中沒有
執行的指令是
cp -fp /fir1/dir2/*/bin/file1 `find . -name file1 -print`
誤差
cp: Target ./6e0476aec9667638c87da1b17b6ccf46/file1 must be a directory
請你扔一些想法爲什麼它會失敗?
謝謝 Robert。
而在RHEL執行shell腳本,我面臨的一個複製命令問題5.cp命令在Linux中沒有
執行的指令是
cp -fp /fir1/dir2/*/bin/file1 `find . -name file1 -print`
誤差
cp: Target ./6e0476aec9667638c87da1b17b6ccf46/file1 must be a directory
請你扔一些想法爲什麼它會失敗?
謝謝 Robert。
你不能將多個多個文件複製到文件中,只有一個目錄,即
cp file1 file2 file2 file4
是不可能的,你需要
cp file1 file2 file2 dir1
謝謝大家的意見。我明白了。我會去相應地更改代碼。 – Robo 2010-07-07 07:25:09
你不能多文件複製到一個位置除非該位置是一個目錄。
cp應該如此使用:cp sourcefile destinationfile
或cp source1 source2 destinationdir
。
當cp
被稱爲具有兩個以上的文件名作爲參數時,它將最後一個作爲目標目錄,並將其他參數中指定的所有文件複製到該目標目錄中。因此,例如,
cp file1 file2 dir3
將創建dir3/file1
和dir3/file2
。看來在你的情況下,模式/fir1/dir2/*/bin/file1
匹配多個文件名,所以cp
正試圖將find
的結果作爲目標目錄 - 它不是 - 並且失敗。
正如其他人所說,您不能使用cp
將多個文件複製到一個文件。另一方面,如果您想將多個文件的內容一起附加到一個目標文件中,您可以使用cat
。
例如:
cat file1 file2 file3 > destinationfile
很難不知道你想達到什麼樣的回答。
如果,例如,要在目錄結構中的一個名爲「文件1」中的所有文件複製到目標位置的/ tmp,建立相同的目錄結構存在,這個命令就可以了:
cd /dir1/dir2
find . -name file1 | cpio -pvd /tmp
這不是一個編程問題,所以真的應該在http://superuser.com – Dipstick 2010-07-07 06:40:24
@chrisharris:只要有3人投票遷移它,它就會是。 – 2010-07-07 07:10:21
該命令應該做什麼?將多個文件複製到一個公共目標目錄或將多個文件連接成一個? – Philipp 2010-07-07 07:29:40