GB | BIG5
|
| 首頁 > 系統管理 > 其它 > 正文 |
 |
| 中文man手冊:cp--復制文件和目錄 |
| 本文出自:http://www.cmpp.net/ 作者: (2001-09-17 08:00:00) |
CP
Section: User Commands (1) Updated: August 1998
名字
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,
install
和
patch
會在覆蓋,改變,或者破壞(文件)前生成一個備份文件.
那個文件由-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 E-mail:?
[中文版最新更新]
2000/10/19
[中國Linux論壇man手冊頁翻譯計劃]
- www.cmpp.net/
-
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
Linux 指令篇:檔案目錄管理--cp (2001-04-30 14:01:04)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |