Linux培訓之cpio命令詳解

    Cpio命令詳細用法shell

    cpio-存取歸檔包中的文件app

    語法Syntax測試

    cpio-o[-aBLuvV][-Cbufsize][-c|-Hformat][-Kvolumesize][[-Ofile[,file...]][-Mmessage]][-Pifd,ofd]ui

    cpio-i[-6AbBcdfkmnqrsStTuvV][-Cbufsize][[-Ifile[,file...]]spa

    [-Mmessage]][-Pifd,ofd][pattern...]命令行

    cpio-p[-adlLmruvV][-Pifd,ofd]directory翻譯

    描述(DEscriptION)orm

    cpio能夠從cpio或tar格式的歸檔包中存入和讀取文件,歸檔包是一種包含其餘文件和有關信息的文件。有關信息包括:文件名,屬主,時標(timestamp),和訪問權限。歸檔包能夠是磁盤上的其餘文件,也能夠是磁帶或管道。ip

    cpio有三種操做模式:ci

    在copy-out模式中,cpio把文件複製到歸檔包中。它從標準輸入得到文件名列表(一行一個),把歸檔包寫到標準輸出。生成文件名列表的典型方法是使用find命令;你可能要在find後面用上-depth選項,減小由於進入沒有訪問權限的目錄而引發的麻煩。

    在copy-in模式中,cpio從歸檔包裏讀取文件,或者列出歸檔包裏的內容。它從標準輸入讀入歸檔包。任何不是選項的命令行參數被視爲shell的通配符模式串(globbingpattern);在歸檔包中,只有文件名匹配這些模式串的文件才能複製出來。和shell中不同,文件名起始處的'.'能夠匹配模式串起始處的通配符,文件名中的'/'也能夠匹配通配符。若是沒有給出模式串,那麼將讀出全部文件。

    在copy-pass模式中,cpio把文件從一棵目錄樹複製到另外一棵,它結合了copy-in和copy-out的操做,但不使用歸檔包。cpio從標準輸入讀取欲複製的文件名列表;目標目錄做爲非選項的命令行參數給出。

    cpio支持下列的歸檔格式:binary,oldASCII,newASCII,crc,HPUXbinary,HPUXoldASCII,oldtar,和POSIX.1tar。

    "binary"格式是過期格式,由於它保存文件信息的方法沒法應用在不一樣體系的機器間移植。"oldASCII"格式能夠跨平臺使用,可是不能用於超過65536個i節點的文件系統中。"newASCII"格式能夠跨平臺使用,也適用於任意大小的文件系統,但不是全部版本的cpio都支持;目前只有GNU和SystemVR4的cpio支持。"crc"格式相似於"newASCII"格式,同時對每一個文件計算校驗和。cpio在建立歸檔包時算出校驗和,解開文件時進行校驗。"HPUX"格式用於兼容HPUNIX的cpio,它用了獨特的方法來保存設備文件。

    "tar"格式用以兼容tar程序。它不能歸檔文件名超過100個字符的文件,也不能歸檔特殊文件(塊設備或字符設備)。"POSIX.1tar"格式不能歸檔文件名超過255個字符的文件(小於,除非文件名的最右邊有一個"/")。

    缺省狀況下,cpio爲了兼容老式的cpio程序,建立"binary"格式的歸檔包。當展開歸檔包時,cpio可以自動識別歸檔包的格式,並且能夠讀取在其餘字節順序的機器上建立的歸檔包。

    cpio的某些選項只能用在對應的操做模式上;參見總覽小節,裏面列出了什麼選項能夠用在什麼模式上。

    選項(OPTIONS)

    -0,--null在copy-out和copy-pass模式中,認爲輸入的文件名以null字符結尾,而不是換行符,這樣即便文件名中包含換行符,也不影響歸檔。GNUfind是生成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)歸檔格式。

    -CIO-SIZE,--io-size=IO-SIZE設置I/O塊大小爲IO-SIZE字節。

    -d,--make-directories在須要的地方建立開始目錄。

    -EFILE,--pattern-file=FILE在copy-in模式中,從FILE中讀取用於匹配文件名的模式串,FILE中的內容就象cpio的非選項參數同樣看待。

    -f,--nonmatching只複製那些不匹配任何給定的模式串的文件。

    -F,--file=archive使用歸檔文件名,而不是標準輸入或輸出。若是把其餘機器上的磁帶機做成歸檔文件使用,文件名要用"HOSTNAME:"開始。主機名前面能夠加上用戶名和一個'@',做爲訪問遠程磁帶機的用戶(若是你有這樣的權限,通常在用戶的~/.rhosts文件中會有這麼一項)。

    --force-local和-F,-I,或-O,一塊兒用,即便文件名中含有一個冒號,也把歸檔文件看做本地文件,通常說來冒號指出一個遠程主機名字。

    -HFORMAT,--format=FORMAT使用歸檔格式FORMAT。有效的格式在下面列出,大小寫都可."copy-in"模式的缺省動做是自動檢測歸檔格式,"copy-out"的缺省格式是"bin"。

    bin老式的binary格式。

    odc老式的(POSIX.1)跨平臺格式。

    newc新型(SVR4)跨平臺格式,支持大於65536i節點的文件系統。

    crc 新型(SVR4)跨平臺格式,而且計算校驗和。

    tar老式的tar格式。

    ustarPOSIX.1tar格式,也能識別GNUtar歸檔文件,它們類似但不全相同。

    hpbinHPUNIX上的cpio使用的老式的binary格式。(用獨特的方法儲存設備文件)

    hpodcHPUNIX上的cpio使用的跨平臺格式。(用獨特的方法儲存設備文件)

    -i,--extract進入copy-in模式。

    -Iarchive使用歸檔文件名,而不是標準輸入。若是把其餘機器上的磁帶機做成歸檔文件,文件名要用"HOSTNAME:"開始。主機名前面能夠加上用戶名和一個'@',做爲訪問遠程磁帶機的用戶(若是你有這樣的權限,通常在用戶的~/.rhosts文件中會有這麼一項)。

    -k無效操做;只是用來兼容其餘版本的cpio。

    -l,--link若是有可能,鏈接文件,而不是複製。

    -L,--dereference解除符號鏈接的關聯(複製符號鏈接指向的文件,而不是鏈接自己)。

    -m,--preserve-modification-time當建立文件時,保留之前的文件修改時間。

    -MMESSAGE,--message=MESSAGE當備份介質(例如磁帶或軟盤)到達卷尾時,顯示一條消息,提醒用戶插入下一卷。若是MESSAGE包含字符串"%d",它被替換成當前卷號(從1開始)。

    -n,--numeric-uid-gid以詳細方式(verbose)顯示內容時,用數字顯示UID和GID,而不是翻譯成名稱。

    --no-absolute-filenames在copy-in模式中,即便它們在歸檔包中有絕對路徑名。也在當前目錄中建立全部相關文件,

    --no-preserve-owner在copy-in和copy-pass模式中,不改變文件的屬主關係(譯註:疑爲不保留);使它們屬於展開它們的用戶。這是普通用戶的缺省行爲,所以SystemV的用戶不致於無心中把文件泄露(giveaway)。

    -o,--create進入copy-out模式。

    -Oarchive使用歸檔文件名,而不是標準輸出。若是把其餘機器上的磁帶機做成歸檔文件,文件名要用"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的文件寫成稀疏文件(sparsefile)。

    -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程序的版本號,而後退出。

    想必各位看了這篇文章以後必定會有所收貨,若想了解更多相關知識請繼續鎖定希賽系統學院

相關文章
相關標籤/搜索