cpio
從歸檔中複製檔案,或者複製檔案到歸檔中。此命令的適用範圍:redhat、rhel、ubuntu、centos、suse、opensuse、fedora。
cpio命令有三種工作模式:
1)copy-out mode,cpio指令將檔案複製到歸檔。它讀取標準輸入上的檔名列表(每行乙個),將歸檔包寫到標準輸出。
2)copy-in mode,cpio指令從歸檔中複製檔案,從標準輸入讀取歸檔包。
3)cpio-pass mode,從目錄樹複製檔案到另乙個目錄,它從標準輸入中讀取要複製的檔案列表。
1、語法
cpio -o namelist > archive
cpio -i < archive
cpio -p dst-dir < namelist
2、選項列表
選項說明
-? | --help
幫助資訊
--version
顯示命令版本資訊
主操作模式
-i | --extract
從包中提取檔案,copy-in模式
-o | --create
建立包,copy-out模式
-p | --pass-through
執行copy-pass模式
-t | --list
列印輸入內容列表
-l | --list
對於每乙個壓縮的檔案,列出壓縮檔案大小、解壓大小、壓縮比列、壓縮前的檔案名字
應用在所有模式的選項
-b設定io塊的大小為5120位元組
-c使用老式跨平台的歸檔格式
-f僅拷貝不匹配任意給定模式的檔案
-f用檔名代替標準輸入和輸出
-n | --numeric-uid-gid
在內容列表的詳細資訊中顯示uid和gid
--quite
不列印以拷貝的塊數
-v | --verbose
詳細資訊
-v | -dot
每處理乙個檔案就列印乙個「.」
應用於copy-in的徐昂想
-b | --swap
-r | --rename
互動式重新命名
-e把指定檔案的內容當做匹配字串
應用於copy-out的選項
追加到文件的結尾
-o使用包檔名,而不是標準輸入輸出
應用於copy-pass的選項
-l | --link
在執行時盡可能建立鏈結,而不是複製檔案
應用於copy-in和copy-out
--absolute-filenames
檔名不出去檔案系統字首
--no-absolute-filenames
當前目錄建立所有檔案
應用於copy-out和copy-pass
-0 | --null
輸入檔名以null字元結尾
-a | --reset-access-time
檔案讀取後,還原檔案的訪問時間
-i從檔案讀入
-r | --owner
設定所有檔案的組合使用者資訊
應用於copy-in和copy-pass
-d必要時建立目錄
-m建立檔案是,保留檔案修改時間屬性
-u無條件覆蓋
3、例子**
% ls | cpio -ov > directory.cpio
歸檔當前目錄下的內容,並且制定輸出檔案
% find . -print -depth | cpio -ov > tree.cpio
存檔整個目錄樹,
find
命令可以將檔案列表提供給
cpio
。這將獲取當前目錄中的所有檔案,以及下面的目錄,並將它們放置在歸檔目錄
tree.cpio
中
% cpio -iv < directory.cpio
這將檢索存檔在檔案
directory.cpio
中的檔案,並將它們放在當前目錄中
% cpio -idv < tree.cpio
這將獲取存檔
tree.cpio
的內容,並將其解壓縮到當前目錄。
% find . -depth -print0 | cpio --null -pvd new-dir
將當前目錄的檔案和子目錄複製到乙個名為
new-dir
的新目錄中
4、例項
1)將當前目錄歸檔
[root@localhost weijie]#ls | cpio -o > mybak //
將
ls
的輸出定向到
cpio
,然後歸檔
1
塊
[root@localhost weijie]#ls
11.c 1.c 2.c 3.c 4.c 5.c 6.c mybak
2)從歸檔中提取檔案
[root@localhost weijie]#cpio -i < mybak //
從歸檔中提取
cpio:
未建立
11.c
:已有更新或同樣新的版本存在
cpio:
未建立
5.c
:已有更新或同樣新的版本存在
cpio:
未建立
6.c
:已有更新或同樣新的版本存在
cpio:
未建立
mybak
:已有更新或同樣新的版本存在
1
塊
[root@localhost weijie]#ls
11.c 1.c 2.c 3.c 4.c 5.c 6.c mybak
3)拷貝檔案
[root@localhost weijie]#cat list.c
1.c
2.c
3.c
[root@localhost weijie]#cpio -p bak/ < list.c //
將
list.c
中的內容當做檔案列表,然後拷貝到
bak
目錄
cpio:
忽略空行
1
塊
[root@localhost weijie]#ls bak/
1.c 2.c 3.c
Linux基礎命令 cpio
cpio 從歸檔中複製檔案,或者複製檔案到歸檔中。此命令的適用範圍 redhat rhel ubuntu centos suse opensuse fedora。cpio命令有三種工作模式 1 copy out mode,cpio指令將檔案複製到歸檔。它讀取標準輸入上的檔名列表 每行乙個 將歸檔包寫...
Linux基礎命令 cpio
cpio 從歸檔中複製檔案,或者複製檔案到歸檔中。此命令的適用範圍 redhat rhel ubuntu centos suse opensuse fedora。cpio命令有三種工作模式 1 copy out mode,cpio指令將檔案複製到歸檔。它讀取標準輸入上的檔名列表 每行乙個 將歸檔包寫...
Linux命令學習手冊 cpio命令
cpio 選項 檔名或者裝置名 cpio 選項 檔名或者裝置名 功能 cpio命令是通過重定向的方式將檔案進行打包備份,還原恢復的工具,它可以解壓以 cpio 或者 tar 結尾的檔案。描述 選項說明 詳細選項說明參看下表 選項 含義 o 將檔案拷貝打包成檔案或者將檔案輸出到裝置上。i 將打包檔案解...