Provided by: manpages-zh_1.5.2-1.1_all bug

NAME

       cp - 複製檔案和目錄

總覽

       cp [選項] 檔案路徑
       cp [選項] 檔案...目錄

       POSIX 選項: [-fipRr]

       GNU   參數(最短形式):   [-abdfilprsuvxPR]   [-S  SUFFIX]  [-V  {numbered,existing,simple}]
       [--sparse=WHEN] [--help] [--version] [--]

描述

       cp 複製檔案(或者目錄等).  可以使用這個命令複製一個檔案到一個指定的目的地, 或者複製任意多個
       檔案到一個目的目錄目錄.

       如果最後一個命令參數為一個已經存在的目錄名,  cp 會將每一個源 檔案 複製到那個目錄下(維持原
       檔名).  如果所給的參數只有兩個檔名.它把前一個檔案複製到後一個檔案上.  如果最後一個參數不是
       檔名,目錄名,和給出多於兩個非選項參數,是 錯誤的.

       (因而:如果/b已經存在,那麼'cp    -r   /a   /b'會複製/a到/b而成為/b/a.    而複製/a/x到/b而成
       為/b/a/x.但如果/b事先不存在,它會把/a複製為/b   而複製/a/x到/b而成為/b/a/x.但如果/b事先不存
       在,它會把/a複製為/b 而把/a/x複製為/b/x.)

       所創建的檔案和/或目錄的模式和原始的檔案的模式是一樣的,   然後用使用者umask值修改(除非使用
       了-p選項),(但在遞歸方式             複製目錄時,新建目錄會臨時地獲得他們的最終模式Ored,連同
       S_IRWXU(0700),以便進程能夠讀、寫、查找這些新建的目錄.

       複製檔案到其自身時它什麼事情都不做(除了可能會生成一條錯誤訊息以外).   當複製到一個現存的不
       同檔案時,系統調用函數 `open(path,O_WRONLY|O_TRUNC)'打開目的檔案.當複製到一個新檔案時,系 統
       調用函數`open(path,O_WRONLY|O_CREAT,mode)'創建該檔案.如果這操     作失敗,該檔案存在,和給出
       了-f選項, cp 試圖先刪除該現存檔案,如果刪除成功則把它當做一個新檔案處理.

POSIX 選項

       POSIX 識別四個半選項:

       -f     如果需要,刪除已存在的目的檔案.(如前所述.)

       -i     提示是否覆蓋現有普通目標檔案。  (在標準出錯上顯示問題,從標準輸入讀取答案.只有明確確
              認了才複製檔案.)

       -p     保留原檔案的所有者、組、權限(包括 setuid 和 setgid 位), 上次修改時間和上次訪問時
              間。如果製作所有者或組信息的副本時出錯, 則 setuid 和 setgid 位被清空。  (要不然源
              檔案和副本的上次訪問時間顯然是不同的, 因為複製操作就是對源檔案的訪問.)

       -R     遞歸複製目錄,如果對象不是普通檔案或目錄那麼做相應正 確處理,(因此,一個 FIFO或者特
              殊檔案在複製後仍然是一 個 FIFO型或者相應特殊檔案。)

       -r     遞歸複製目錄,如果對象不是普通檔案或目錄那麼做一些未 聲明處理.(因此,我們允許並鼓
              勵用 -r 選項做 -R 的 同義詞.不過那些愚蠢的特征,像那些在 GNU 版本的 cp 出 現的(見
              下文)也可以用.)

GNU 細節

       通常,讀寫檔案的方式都是一樣的.例外情況見下面的 --sparse 選項.

       預設情況下,`cp'並不複製目錄(參見下文 -r 選項說明).

       cp 通常不會複製檔案到自身,但有以下例外: 如果參數 --force --backup源檔案  一起給出,並
       且與  目的檔案  並且指向一個普通檔案, cp 將生成一個備份檔案,不是普通的就是編了號的,就像通
       常的方法那樣聲明.在你僅僅想對已有的檔案進行備份, 而又不想修改它的時候很有用.

GNU 選項

       -a, --archive
              複製時,盡可能保持檔案的結構和屬性.(但不保持目錄 結構)等同於 -dpR-d, --no-dereference
              複製符號鏈接作為符號鏈接而不是複製它指向的檔案, 並且保護在副本中原檔案之間的硬鏈接.

       -f, --force
              刪除存在的目標檔案。 (較:原譯文缺下面的部分)

       -i, --interactive
              無論是否覆蓋現存檔案都作提示。

       -l, --link
              製作硬鏈接代替非目錄拷貝。

       -p, --preserve
              保持原始檔案的所有者,組,許可,和時間表屬性。

       -P, --parents
              一個斜槓和指定的源檔名構成目的檔案。 最後送給  cp  的參數必須是一個已存在的目錄的名
              字。例如, 下面這個命令:
              cp --parents a/b/c existing_dir
              複製檔案 `a/b/c' 到 texisting_dir(現有的目錄)/a/b/c',建立任 何缺少的中間目錄。

       -r     遞歸地複製目錄,複製任何非目錄和非符號鏈接(那是,  FIFOs和特別檔案)好像他們是常規的檔
              案一樣看待.這   意味著嘗試讀出每個源檔案的數據,和把它寫到目的地    上.因而,用這個選
              項,cp'可能徹底地終止,當不確定地  讀一個FIFO或者/dev/tty時,(這是一個缺陷.它意味著 如
              果你不知道在這棵樹(目錄)中有什麼要複製的時候,  你不得不避開-r並使用-R打開一個未知的
              設備檔案, 比如說一台掃描儀,會有未知的效果發生在硬體上)

       -R, --recursive
              遞歸地複製目錄,保留非目錄(參見上面的 -r ).

       --sparse=WHEN
              一個稀疏file'包容`holes'-佔用0字節,它不佔用任何   物理塊;系統把他們作為0調用read'來
              讀.由於許多二進 制檔案包容許多連續的0字節,這樣能保存相當的磁碟空  間並且加快速度.省
              缺情況下, cp 通過自然的啟發方式發現在源檔案裏holes並且使相關 的輸出檔案稀疏.

              WHEN 值能夠是下面中的一個:

              auto   預設的行為:如果輸入檔案是稀疏的,輸出檔案也是稀疏的.

              always 總是使輸出檔案稀疏.當輸入檔案所在的檔案系統不支   持稀疏檔案的時候,這是有用
                     的,但是輸出檔案所在的 檔案系統需要(支持稀疏檔案).

              never  從不使輸出檔案稀疏.如果你找到一個需要此選項的應 用程式,讓我們知道.

       -s, --symbolic-link
              生成符號鏈接代替非目錄拷貝.所有的源檔名必須是  絕對的(由`/'開始),除非目的檔案是在當
              前目錄.這選 項僅僅在系統不支持符號鏈接時引起一個錯誤消息.

       -u, --update
              如果存在的目的地有相同的,或者更新的修改時間,不 複製非目錄(檔案).

       -v, --verbose
              在複製前印出檔名.

       -x, --one-file-system
              跳過來自不同檔案系統的子目錄.

GNU 備份選項

       GNU  版本程式像  cp, mv, ln, installpatch 會在覆蓋,改變,或者破壞(檔案)前生成一個備份檔
       案.  那個檔案由-b選項給出.他們的由-V選項命名.一般  情況下備份檔名是源檔名加上延伸檔名,這個
       延伸檔名由-S 指定.

       -b, --backup
              生成關於覆蓋和刪除的備份.

       -S SUFFIX, --suffix=SUFFIX
              加入  SUFFIX(延伸檔名) 到每個備份檔案.  如果不指定,使用 SIMPLE_BACKUP_SUFFIX 環境變
              量的值.如果連 SIMPLE_BACKUP_SUFFIX 都沒有設置,省缺是`~'.

       -V METHOD, --version-control=METHOD
              指定如何命名備份檔案.  METHOD 能夠是 `numbered' (or `t'), `existing' (or `nil'), or
              `never'   (or   `simple').    如果不指定,使用   VERSION_CONTROL   環境變量的值.如果
              VERSION_CONTROL 也沒有設置,省缺備份檔案類型是 `existing'.

              這選項相應Emacs 變量 `version-control'.  有效的 METHODs 是(接受唯一的縮寫):

              t, numbered
                     總是產生編號的備份。

              nil, existing
                     Make numbered backups of files that already have them, simple backups of the
                     others.

              never, simple
                     總作簡單的備份.

GNU 標準選項

       --help 印出用法並退出.

       --version
              印出版本信息並退出.

       --     結束選項列表.

環境(參數)

       變量LANG,LC_ALL,LC_COLLATE,LC_CTYPE和LC_MESSAGES有通常意義.                 對於GNU版本,變
       量SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制備份 檔案命名.與上面的描述一樣.

適用到

       POSIX 1003.2

注意

       這份  cp  的描述和FILEUTils-4.0中找到的是一樣的;另外的版   本也許有些微的差別.修正和新增郵
       到aeb@cwi.nl.  報告缺陷到fileutils-bugs@gnu.ai.mit.edu.

[中文版維護人]

       Surran <email>

[中文版最新更新]

       2000/10/19

《中國linux論壇man手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net