2016-09-17 111 views
0

假設我有一個叫做目錄A.如何將目錄中的內容複製到shell中的當前目錄中?

目錄A有一堆c文件,並且我想將所有這些文件cp到腳本運行的目錄中(在這種情況下它會是Home in Linux系統)。

爲了確保它被成功複製,我會隨即回顯所有被複制的內容。

這是我曾嘗試:

cp -r A Home/ 

echo `.c` # prints the files that have a .c at the end after they get copied 

但是我得到的錯誤是,雖然該目錄也是在Home目錄的目錄甚至不存在。我也嘗試將其更改爲另一個目錄,但似乎並不奏效。

另一個問題是,這不會複製到它複製到當前目錄。我用這個清單,看看是否有一個shell命令,也沒有找到一份命令,允許我將文件放置在腳本中運行的目錄。

https://www-xray.ast.cam.ac.uk/~jss/lecture/computing/notes/out/commands_basic/

+0

咦? '''echo'.c'''嘗試運行'.c'作爲命令,並將該命令的輸出替換爲'echo'的參數。你爲什麼期望它做任何不同的事情? –

+0

...如果你想以'.c'結尾的文件沒有'ls',可以使用'printf'%s \ n'* .c'(更好)或'echo * .c'(更糟糕的是:can' t區分文件名之間的空格和文件之間的分隔符),而不是'''echo'.c''''。 –

回答

1

您應該在A的父目錄中將其複製到某處,或者提及要複製的文件的完整路徑。

例如,如果B是A

的父母,你應該已經在目錄B到執行命令

cp -R A <your_destination_folder_path> 

EG。 cp -R A。 表示要將文件複製到當前路徑

最好給出目標的完整絕對路徑。

如果您已經在目錄A中並且只是想單獨複製目錄文件。你可以給這個

cp * <your_destination_folder_path> 

如果您有任何目錄,但只是想複製的內容,然後提供完整的(絕對)路徑或相對路徑至A複製文件..

+0

絕對沒有必要在一個目錄的父母能夠複製它 - 看到我的答案展示相同。 –

+0

此外,請參閱['cp'的POSIX規範](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cp。html):'-r'不再被指定爲標準的一部分; '-R'是其更新的替代品。 –

+0

是的 - 我只想在使用命令cp -r A 時檢查他是否在目錄本身內使用了該命令。如果他使用完整的路徑,那麼它不會是一個問題。 – Pat

0
cp -R /path/to/other/directory/. . 

鑑於(用作複製目的地),.引用當前目錄。

在作爲源位置傳遞到cp -R的路徑結尾處,尾部/.指示該目錄的名稱不應該用作目標元素(因此,我們不復制目錄本身,但其內容)。

相關問題