Linux 中的 cp
命令代表 “複製”。它是一種命令列工具,用於將檔案和目錄從檔案系統中的一個位置複製到另一個位置。通過使用 cp 命令,使用者可以建立檔案或目錄的副本,同時保留原始內容。
cp 命令中的 “source
“是指要複製的檔案或目錄,”destination
“是指要放置副本的位置。可以新增各種選項來修改複製行為,如保留檔案屬性或提供詳細輸出。在 Linux 中,它是管理檔案和目錄的基本命令,使用廣泛。
在本篇文章中,我們將介紹在 Linux 中使用 cp
命令複製檔案和資料夾的一些常用方法。
語法:
cp [options] source destination
1. 複製檔案
cp foo.txt bar.txt
該命令將把 foo.txt
檔案的內容複製到名為 bar.txt
的檔案中。
示例:
假設您有一個名為 foo.txt
的檔案,內容如下:
Hello, World!
如果執行 cp foo.txt bar.txt
命令,就會建立一個名為 bar.txt
的新檔案,其內容與 foo.txt
完全相同:
Hello, World!
如果 bar.txt
已經存在,其內容將被 foo.txt
的內容覆蓋。如果 bar.txt 不存在,則會被建立。
2. 複製目錄(及其內容)
cp -R foo-folder bar-folder
-R
選項代表 “遞迴”,用於複製目錄及其內容,包括子目錄。
下面是 cp -R foo-folder bar-folder
命令的作用:
cp
: 呼叫複製命令。-R
: 告訴命令進行遞迴操作,複製所有目錄和子目錄。foo-folder
: 要複製的源目錄。bar-folder
: 要複製源目錄的目標目錄。
示例
假設有一個名為 foo-folder
的目錄,其結構如下:
foo-folder/ ├── file1.txt └── subfolder └── file2.txt
然後,你要將整個目錄複製到另一個名為 bar-folder
的目錄中。
你可以執行命令:
cp -R foo-folder bar-folder
執行此命令後, bar-folder
目錄的結構將與 foo-folder
相同:
bar-folder/ └── foo-folder ├── file1.txt └── subfolder └── file2.txt
如果 bar-folder
不存在,則將建立它。如果存在,foo-folder 將被複制到其中,並保留 foo-folder
的結構。
注:如果要將 foo-folder
的內容直接複製到 bar-folder
中,而不在 bar-folder
中建立 foo-folder
,則需要確保 bar-folder
存在,然後執行:
1 | cp -R foo-folder/* bar-folder/ |
3. 顯示覆制進度
cp -v foo.txt bar.txt
-v
選項代表 “verbose”(詳細說明),與 cp
命令一起使用時,可提供有關正在執行的操作的詳細資訊。
示例:
假設當前目錄下有一個名為 foo.txt
的檔案,你想在同一目錄下建立一個名為 bar.txt 的檔案副本。您可以使用以下命令:
cp -v foo.txt bar.txt
如果操作成功,命令將輸出如下資訊:
'foo.txt' -> 'bar.txt'
該資訊確認檔案 foo.txt
已複製到 bar.txt。
4. 確認覆蓋檔案
cp -i foo.txt bar.txt
-i
代表 “interactive(互動式)”。使用該選項時,系統會在覆蓋任何檔案前提示你。如果你想避免意外覆蓋現有檔案,這個選項非常有用。
示例:
假設當前目錄下有一個名為 foo.txt
的檔案,你想在同一目錄下建立一個名為 bar.txt
的副本。但是你不確定名為 bar.txt 的檔案是否已經存在,而且你不想在沒有警告的情況下覆蓋它。
您可以使用命令:
cp -i foo.txt bar.txt
如果已存在 bar.txt
,系統將提示您類似的資訊:
cp: overwrite 'bar.txt'?
然後,你可以輸入 y
(是)選擇覆蓋,或輸入 n
(否)避免覆蓋。
如果 bar.txt
不存在,命令將直接建立一個名為 bar.txt
的 foo.txt
副本,而不會有任何提示。
5. 將多個檔案複製到一個目錄
cp foo.txt bar.txt baz
該命令將在 baz
目錄中複製 foo.txt
和 bar.txt
。baz
目錄必須存在,命令才會生效。
更多 Linux 命令
下面羅列了最常見的一些 Linux 命令,您可以根據自己的需要查閱對應命令的詳細解析:
目錄操作 | rmdir · cd · pwd · exa · ls |
檔案操作 | cat · cp · dd · less · touch · ln · rename · more · head |
檔案系統操作 | chown · mkfs · locate |
網路 | ping · curl · wget · iptables · mtr |
搜尋和文字處理 | find · grep · sed · whatis · ripgrep · fd · tldr |
系統資訊和管理 | env · history · top · who · htop · glances · lsof |
使用者和會話管理 | screen · su · sudo · open |
此外,我們還整理 Linux 命令列大全,以幫助大家全面深入地學習 Linux。
評論留言