Linux cpio命令的使用

來源:互聯網
上載者:User
cpio使用 用法:cpio [option] [<> device]
例: 備份/home家目錄
<1>建立備份
(1)絕對路徑:find /home -print |cpio -ov > home.cpio
(2)相對路徑:cd /home;find . -print |cpio -ov > home.cpio
<2>檢視備份檔內容
(1)原始檔使用絕對路徑備份:cpio -itv --absolute-filenames < home.cpio
(2)原始檔使用相對路徑備份:cpio -itv < home.cpio
<3>解開備份檔
(1)原始檔使用絕對路徑備份:cpio -ivdum --absolute-filenames < home.cpio
(2)原始檔使用相對路徑備份:cpio -ivdum < home.cpio

option:
-o:建立備份檔
-v:顯示過程
-i:解開備份檔
-t:檢視備份檔
-d:自動建立目錄
-u:強制覆蓋已存在的內容
-m:保留時間屬性
--absolute-filenames:保留絕對路徑
(因為FC3之後,cpio不允許解開絕對路徑建立的備份檔,所以在解開或檢視時,必須加上此選項 才可正常)

 

--------------------------------------------------------

 

  cpio - 存取歸檔包中的檔案
  
  文法 Syntax
  cpio -o [ -aBLuvV ] [ -C bufsize ] [ -c | -H format ][ -K volumesize ] [ [ -O file [, file ... ] ] [ -M message ] ] [ -Pifd,ofd ]
  
  cpio -i [ -6AbBcdfkmnqrsStTuvV ] [-C bufsize ] [ [ -I file [, file ... ] ]
  [ -M message ] ] [ -Pifd,ofd ] [ pattern ... ]
  
  cpio -p [ -adlLmruvV ] [ -Pifd,ofd ] directory
  
  描述 (DEscriptION)
  cpio 可以從 cpio 或 tar 格式的歸檔包中存入和讀取檔案, 歸檔包是一種包含其他檔案和有關資訊的檔案。 有關資訊包括:檔案名稱, 屬主, 時標(timestamp), 和存取權限。 歸檔包可以是磁碟上的 其他檔案, 也可以是磁帶或管道。
  
  cpio 有三種操作模式:
  在copy-out模式中, cpio 把檔案複製到歸檔包中。它從標準輸入獲得檔案名稱列表 (一行一個), 把歸檔包寫到標準輸出。組建檔案名列表的典型方法是使用find 命令; 你可能要在 find 後面用上 -depth選項, 減少因為進入沒有存取權限的目錄而引起的麻煩。
  
  在copy-in模式中, cpio 從歸檔包裡讀取檔案, 或者列出歸檔包裡的內容。它從標準輸入讀入歸檔包。任何不是選項的命令列參數被視為shell的萬用字元模式串 (globbing pattern); 在歸檔包中, 只有檔案名稱匹配這些模式串的檔案才能複製出來。 和 shell 中不一樣, 檔案名稱起始處的 '.' 可以匹配模式串起始處的萬用字元, 檔案名稱中的 '/' 也可以匹配萬用字元。 如果沒有給出模式串, 那麼將讀出所有檔案。
  
  在copy-pass模式中, cpio把檔案從一棵分類樹複製到另一棵, 它結合了 copy-in 和 copy-out 的操作, 但不使用歸檔包。 cpio從標準輸入讀取欲複製的檔案名稱列表; 目標目錄作為非選項的命令列參數給出。
  
  cpio支援下列的歸檔格式: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, 和 POSIX.1 tar。
  
  "binary"格式是過時格式, 因為它儲存檔案資訊的方法無法應用在不同體系的機器間移植。"old ASCII" 格式可以跨平台使用, 但是不能用於超過 65536 個 i 節點的檔案系統中。 "new ASCII" 格式可以跨平台使用, 也適用於任意大小的檔案系統, 但不是所有版本的 cpio 都支援; 目前只有 GNU 和 System VR4 的 cpio 支援。"crc" 格式 類似於 "new ASCII" 格式, 同時對每個檔案計算校正和。cpio 在建立歸檔包時算出校正和, 解開檔案時進行校正。 "HPUX" 格式用於相容 HP UNIX 的 cpio, 它用了獨特的方法來儲存裝置檔案。
  
  "tar" 格式用以相容 tar 程式。它不能歸檔檔案名稱超過 100 個字元的檔案, 也不能歸檔特殊檔案 (塊裝置或字元裝置)。 "POSIX.1 tar" 格式不能歸檔檔案名稱超過 255 個字元的檔案(小於, 除非檔案名稱的最右邊有一個 "/")。
  
  預設情況下, cpio 為了相容老式的 cpio 程式, 建立 "binary" 格式的歸檔包。當展開歸檔包時, cpio 能夠自動識別歸檔包的格式, 而且可以讀取在其他位元組順序的機器上建立的歸檔包。
  
  cpio 的某些選項只能用在對應的操作模式上; 參見總覽小節, 裡面列出了什麼選項可以用在什麼模式上。
  
  選項 (OPTIONS)
  -0, --null 在copy-out 和 copy-pass 模式中, 認為輸入的檔案名稱以 null字元結尾,而不是分行符號, 這樣即使檔案名稱中包含分行符號, 也不影響歸檔。 GNU find 是產生 null 結尾檔案名稱列表的方法之一。
  
  -a, --reset-access-time 讀取完檔案後重設檔案的訪問時間, 這樣看上去就象沒被訪問過一樣。
  
  -A, --append 追加到已經存在的歸檔包中。僅用於 copy-out模式。該歸檔包必須是用 -O 或 -F (--file) 選項指定的磁碟檔案。
  
  -b, --swap 在 copy-in 模式中, 顛倒資料中字中的半字和半字中的位元組順序。 相當於 -sS 使用這個選項,可以在大端數和小端數機器之間轉換 32 位整數。
  
  -B 把 I/O 塊大小設定成 5120 位元組,最初的塊大小是 512 位元組。
  
  --block-size=BLOCK-SIZE
  設定 I/O 塊 大小 為 BLOCK-SIZE * 512 位元組。
  
  -c 使用老式的跨平台 (ASCII) 歸檔格式。
  
  -C IO-SIZE, --io-size=IO-SIZE 設定 I/O 塊大小為 IO-SIZE 位元組。
  
  -d, --make-directories 在需要的地方建立開始目錄。
  
  -E FILE, --pattern-file=FILE 在 copy-in 模式中, 從 FILE 中讀取用於匹配檔案名稱的模式串, FILE 中的內容就象 cpio 的非選項參數一樣看待。
  
  -f, --nonmatching 只複製那些不匹配任何給定的模式串的檔案。
  
  -F, --file=archive 使用歸檔檔案名稱, 而不是標準輸入或輸出。 如果把其他機器上的磁帶機作成歸檔檔案使用, 檔案名稱要用 "HOSTNAME:" 開始。 主機名稱前面可以加上使用者名稱和一個 '@', 作為訪問遠程磁帶機的使用者 (如果你有這樣的許可權, 一般在使用者的 ~/.rhosts 檔案中會有這麼一項)。
  
  --force-local 和 -F, -I, 或 -O, 一起用, 即使檔案名稱中含有一個冒號,也把歸檔檔案看作本地檔案, 一般說來冒號指出一個遠程主機名稱字。
  
  -H FORMAT, --format=FORMAT 使用歸檔格式 FORMAT。 有效格式在下面列出, 大小寫均可. "copy-in" 模式的預設動作是自動檢測歸檔格式, "copy-out" 的預設格式是 "bin"。
  bin 老式的 binary 格式。
  odc 老式的 (POSIX.1) 跨平台格式。
  newc 新型 (SVR4) 跨平台格式, 支援大於 65536 i節點的檔案系統。
  crc 新型 (SVR4) 跨平台格式, 並且計算校正和。
  tar 老式的 tar 格式。
  ustar POSIX.1 tar 格式, 也能識別 GNU tar 歸檔檔案, 它們相似但不全相同。
  hpbin HP UNIX 上的 cpio 使用的老式的 binary 格式。(用獨特的方法儲存裝置檔案)
  hpodc HP UNIX 上的 cpio 使用的跨平台格式。 (用獨特的方法儲存裝置檔案)
  
  -i, --extract 進入 copy-in 模式。
  
  -I archive 使用歸檔檔案名稱, 而不是標準輸入。 如果把其他機器上的磁帶機作成歸檔檔案, 檔案名稱要用 "HOSTNAME:" 開始。 主機名稱前面可以加上使用者名稱和一個 '@', 作為 訪問遠程 磁帶機的使用者 (如果你有這樣的許可權, 一般在使用者的 ~/.rhosts 檔案中會有這麼一項)。
  
  -k 無效操作; 只是用來相容其他版本的 cpio。
  
  -l, --link 如果有可能, 串連檔案, 而不是複製。
  
  -L, --dereference 解除符號串連的關聯 (複製符號串連指向的 檔案, 而不是串連本身)。
  
  -m, --preserve-modification-time 當建立檔案時, 保留以前的檔案修改時間。
  
  -M MESSAGE, --message=MESSAGE當備份介質(例如 磁帶或磁碟片) 到達卷尾時, 顯示一條訊息, 提醒使用者插入下一卷。如果 MESSAGE 包含字串 "%d", 它被替換成當前卷號 (從 1 開始)。
  
  -n, --numeric-uid-gid 以詳細方式 (verbose) 顯示內容時, 用數字顯示 UID 和 GID, 而不是翻譯成名稱。
  
  --no-absolute-filenames 在copy-in模式中, 即使它們在歸檔包中有絕對路徑名。也在目前的目錄中建立所有相關檔案,
  
  --no-preserve-owner 在 copy-in 和 copy-pass 模式中, 不改變檔案的屬主關係 (譯註: 疑為不保留); 使它們屬於展開它們的使用者。這是普通使用者的預設行為, 因此 System V 的使用者不致於無意中把檔案泄露(give away)。
  
  -o, --create 進入 copy-out 模式。
  
  -O archive 使用歸檔檔案名稱, 而不是標準輸出。 如果把其他機器上的磁帶機作成歸檔檔案, 檔案名稱要用 "HOSTNAME:" 開始。 主機名稱前面可以加上使用者名稱和一個 '@', 作為訪問遠程磁帶機的使用者 (如果你有這樣的許可權, 一般在使用者的 ~/.rhosts 檔案中會有這麼一項)。
  
  --only-verify-crc 當在 copy-in 模式讀入 CRC 格式的歸檔包時, 不展開裡面的檔案, 而只是測試檔案的 CRC 碼。
  
  -p, --pass-through 進入 copy-pass 模式。
  
  --quiet 不顯示複製的塊數。
  
  -r, --rename 互動式檔案改名。
  
  -R [user][:.][group], --owner [user][:.][group] 在 copy-out 和 copy-pass 模式中, 把所有檔案的屬主設定為指定的使用者和/或使用者組。 無論使用者還是使用者組都必須存在。 如果省略使用者組, 但是給出了分隔字元 ":" 或 "。', 則使用給定使用者登入時的使用者組。 只有超級使用者能夠改變檔案的屬主。
  
  --sparse 在 copy-out 和 copy-pass 模式中, 把大塊資料 0 的檔案寫成疏鬆檔案 (sparse file)。
  
  -s, --swap-bytes 在 copy-in 模式中, 分頁檔中每一個半字(位元組對) 中的位元組。
  
  -S, --swap-halfwords 在 copy-in 模式中, 分頁檔中每一個字(4位元組) 中的半字。
  
  -t, --list 顯示輸入歸檔包的內容。
  
  -u, --unconditional 替換所有檔案, 不再提問是否用舊檔案替換已經存在的新檔案。
  
  -v, --verbose 列出處理的檔案, 加上 -t 選項可以列出一個 'ls -l' 風格的列表。在一個歸檔包內容的詳細列表 (verbose) 中, 如果本地系統不存在歸檔檔案的使用者和使用者組名稱, 它們將被替換成其數字 UID和GID 對應於本地系統的使用者和使用者組名稱。
  
  -V --dot 每處理一個檔案, 顯示一個 "."。
  
  --version 顯示 cpio 程式的版本號碼, 然後退出。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.