linux cpio命令的使用
linux cpio命令的使用
cpio -o > [file|device] <==備份
cpio -i < [file|device] <==還原
-o :將資料 copy 輸出到檔案或裝置上
-i :將資料自檔案或裝置 copy 出來系統當中
-t :檢視 cpio 建立的檔案或裝置的內容
-c :一種較新的 portable format 方式儲存
-v :讓儲存的過程中檔名稱可以在螢幕上顯示
-B :讓預設的 Blocks 可以增加至 5120 bytes ,預設是 512 bytes !
這樣的好處是可以讓大檔案的儲存速度加快(請參考 i-nodes 的觀念)
-d :自動建立目錄!由於 cpio 的內容可能不是在同一個目錄內,
如此的話在反備份的過程會有問題! 這個時候加上 -d 的話,
就可以自動的將需要的目錄建立起來了!
-u :自動的將較新的檔案覆蓋較舊的檔案!
準備資料
[root@node1 tmp]# ll
total 104
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 tmp]# mkdir abc
[root@node1 tmp]# ll
total 108
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 tmp]# cd abc
[root@node1 abc]# echo "hello cpio" > abc1.txt
[root@node1 abc]# ll
total 4
-rw-r--r-- 1 root root 11 Jan 13 12:35 abc1.txt
[root@node1 tmp]# pwd
/tmp
[root@node1 tmp]# ll
total 108
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
1、使用cpio備份
[root@node1 tmp]# cpio -ov top.bak > top.bak.cpio --cpio不支援直接寫入檔名,需要使用ls或echo或find或 cpio: Too many arguments
1)使用ls
[root@node1 tmp]# ls top.bak1 top.bak2
top.bak1 top.bak2
[root@node1 tmp]# ls top.bak1 top.bak2 | cpio -ov > top.bak12.cpio
top.bak1
top.bak2
85 blocks
[root@node1 tmp]# cpio -tv < top.bak12.cpio --檢視 cpio 建立的檔案或裝置的內容
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
85 blocks
2)使用echo
[root@node1 tmp]# echo top.bak | cpio -ov > top.bak.rel.cpio --相對路徑的備份
top.bak
7 blocks
[root@node1 tmp]# echo /tmp/top.bak | cpio -ov > top.bak.abs.cpio --絕對路徑的備份
/tmp/top.bak
7 blocks
[root@node1 tmp]# cpio -tv < top.bak.rel.cpio
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
7 blocks
[root@node1 tmp]# cpio -tv < top.bak.abs.cpio
cpio: Removing leading `/' from member names
-rw-r--r-- 1 root root 3071 Jan 13 12:13 tmp/top.bak
7 blocks
3)使用find
[root@node1 tmp]# find /tmp -name abc1.txt
/tmp/abc/abc1.txt
[root@node1 tmp]# find /tmp -name abc1.txt -print
/tmp/abc/abc1.txt
[root@node1 tmp]# find /tmp -name abc1.txt | cpio -ov > abc1.txt.cpio
/tmp/abc/abc1.txt
1 block
4)使用 [root@node1 tmp]# cat test
top.txt
[root@node1 tmp]# cpio -ov < test > top.txt.cpio
top.txt
43 blocks
[root@node1 tmp]# cpio -tv < top.txt.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
43 blocks
2、使用cpio恢復
[root@node1 dev]# cd /tmp
[root@node1 tmp]# ll
total 164
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 512 Jan 13 12:37 abc1.txt.cpio
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 3584 Jan 13 12:36 top.bak.abs.cpio
-rw-r--r-- 1 root root 0 Jan 13 12:36 top.bak.cpio
-rw-r--r-- 1 root root 3584 Jan 13 12:36 top.bak.rel.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 43520 Jan 13 12:36 top.bak12.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 /]# pwd
/
[root@node1 /]# mkdir tmp2
[root@node1 /]# cd /tmp2
[root@node1 tmp2]# cpio -iv < /tmp/top.bak.rel.cpio
top.bak
7 blocks
[root@node1 tmp2]# ll
total 4
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
[root@node1 tmp2]# cpio -iv < /tmp/top.bak.abs.cpio
cpio: Removing leading `/' from member names ---------------------注意這裡,不使用絕對路徑
cpio: tmp/top.bak: No such file or directory
tmp/top.bak
7 blocks
[root@node1 tmp2]# ll
total 4
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
--由於/tmp2下沒有tmp目錄,所以報錯,未恢復成功
[root@node1 tmp2]# cpio -idv < /tmp/top.bak.abs.cpio --加上-d自動建立目錄
cpio: Removing leading `/' from member names
tmp/top.bak
7 blocks
[root@node1 tmp2]# ll
total 8
drwxr-xr-x 2 root root 4096 Jan 13 12:39 tmp
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
[root@node1 tmp2]# cpio -iv < /tmp/abc1.txt.cpio
cpio: Removing leading `/' from member names
cpio: tmp/abc/abc1.txt: No such file or directory
tmp/abc/abc1.txt
1 block
[root@node1 tmp2]# cpio -idv < /tmp/abc1.txt.cpio
cpio: Removing leading `/' from member names
tmp/abc/abc1.txt
1 block
加上--absolute-filenames引數使用絕對路徑來恢復
[root@node1 tmp]# pwd
/tmp
[root@node1 tmp]# rm -f top.bak
[root@node1 tmp2]# pwd
/tmp2
[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio
/tmp/top.bak
7 blocks
[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio
cpio: /tmp/top.bak not created: newer or same age version exists
/tmp/top.bak
7 blocks
[root@node1 tmp2]# cpio -uiv --absolute-filenames < /tmp/top.bak.abs.cpio --加上-u引數自動的將較新的檔案覆蓋較舊的檔案
/tmp/top.bak
7 blocks
cpio -o > [file|device] <==備份
cpio -i < [file|device] <==還原
-o :將資料 copy 輸出到檔案或裝置上
-i :將資料自檔案或裝置 copy 出來系統當中
-t :檢視 cpio 建立的檔案或裝置的內容
-c :一種較新的 portable format 方式儲存
-v :讓儲存的過程中檔名稱可以在螢幕上顯示
-B :讓預設的 Blocks 可以增加至 5120 bytes ,預設是 512 bytes !
這樣的好處是可以讓大檔案的儲存速度加快(請參考 i-nodes 的觀念)
-d :自動建立目錄!由於 cpio 的內容可能不是在同一個目錄內,
如此的話在反備份的過程會有問題! 這個時候加上 -d 的話,
就可以自動的將需要的目錄建立起來了!
-u :自動的將較新的檔案覆蓋較舊的檔案!
準備資料
[root@node1 tmp]# ll
total 104
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 tmp]# mkdir abc
[root@node1 tmp]# ll
total 108
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 tmp]# cd abc
[root@node1 abc]# echo "hello cpio" > abc1.txt
[root@node1 abc]# ll
total 4
-rw-r--r-- 1 root root 11 Jan 13 12:35 abc1.txt
[root@node1 tmp]# pwd
/tmp
[root@node1 tmp]# ll
total 108
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
1、使用cpio備份
[root@node1 tmp]# cpio -ov top.bak > top.bak.cpio --cpio不支援直接寫入檔名,需要使用ls或echo或find或 cpio: Too many arguments
1)使用ls
[root@node1 tmp]# ls top.bak1 top.bak2
top.bak1 top.bak2
[root@node1 tmp]# ls top.bak1 top.bak2 | cpio -ov > top.bak12.cpio
top.bak1
top.bak2
85 blocks
[root@node1 tmp]# cpio -tv < top.bak12.cpio --檢視 cpio 建立的檔案或裝置的內容
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
85 blocks
2)使用echo
[root@node1 tmp]# echo top.bak | cpio -ov > top.bak.rel.cpio --相對路徑的備份
top.bak
7 blocks
[root@node1 tmp]# echo /tmp/top.bak | cpio -ov > top.bak.abs.cpio --絕對路徑的備份
/tmp/top.bak
7 blocks
[root@node1 tmp]# cpio -tv < top.bak.rel.cpio
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
7 blocks
[root@node1 tmp]# cpio -tv < top.bak.abs.cpio
cpio: Removing leading `/' from member names
-rw-r--r-- 1 root root 3071 Jan 13 12:13 tmp/top.bak
7 blocks
3)使用find
[root@node1 tmp]# find /tmp -name abc1.txt
/tmp/abc/abc1.txt
[root@node1 tmp]# find /tmp -name abc1.txt -print
/tmp/abc/abc1.txt
[root@node1 tmp]# find /tmp -name abc1.txt | cpio -ov > abc1.txt.cpio
/tmp/abc/abc1.txt
1 block
4)使用 [root@node1 tmp]# cat test
top.txt
[root@node1 tmp]# cpio -ov < test > top.txt.cpio
top.txt
43 blocks
[root@node1 tmp]# cpio -tv < top.txt.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
43 blocks
2、使用cpio恢復
[root@node1 dev]# cd /tmp
[root@node1 tmp]# ll
total 164
drwxr-xr-x 2 root root 4096 Jan 13 12:35 abc
-rw-r--r-- 1 root root 512 Jan 13 12:37 abc1.txt.cpio
-rw-r--r-- 1 root root 8 Jan 13 12:35 test
-rw-r--r-- 1 root root 3071 Jan 13 12:13 top.bak
-rw-r--r-- 1 root root 3584 Jan 13 12:36 top.bak.abs.cpio
-rw-r--r-- 1 root root 0 Jan 13 12:36 top.bak.cpio
-rw-r--r-- 1 root root 3584 Jan 13 12:36 top.bak.rel.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1
-rw-r--r-- 1 root root 43520 Jan 13 12:36 top.bak12.cpio
-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2
-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3
-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt
[root@node1 /]# pwd
/
[root@node1 /]# mkdir tmp2
[root@node1 /]# cd /tmp2
[root@node1 tmp2]# cpio -iv < /tmp/top.bak.rel.cpio
top.bak
7 blocks
[root@node1 tmp2]# ll
total 4
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
[root@node1 tmp2]# cpio -iv < /tmp/top.bak.abs.cpio
cpio: Removing leading `/' from member names ---------------------注意這裡,不使用絕對路徑
cpio: tmp/top.bak: No such file or directory
tmp/top.bak
7 blocks
[root@node1 tmp2]# ll
total 4
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
--由於/tmp2下沒有tmp目錄,所以報錯,未恢復成功
[root@node1 tmp2]# cpio -idv < /tmp/top.bak.abs.cpio --加上-d自動建立目錄
cpio: Removing leading `/' from member names
tmp/top.bak
7 blocks
[root@node1 tmp2]# ll
total 8
drwxr-xr-x 2 root root 4096 Jan 13 12:39 tmp
-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak
[root@node1 tmp2]# cpio -iv < /tmp/abc1.txt.cpio
cpio: Removing leading `/' from member names
cpio: tmp/abc/abc1.txt: No such file or directory
tmp/abc/abc1.txt
1 block
[root@node1 tmp2]# cpio -idv < /tmp/abc1.txt.cpio
cpio: Removing leading `/' from member names
tmp/abc/abc1.txt
1 block
加上--absolute-filenames引數使用絕對路徑來恢復
[root@node1 tmp]# pwd
/tmp
[root@node1 tmp]# rm -f top.bak
[root@node1 tmp2]# pwd
/tmp2
[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio
/tmp/top.bak
7 blocks
[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio
cpio: /tmp/top.bak not created: newer or same age version exists
/tmp/top.bak
7 blocks
[root@node1 tmp2]# cpio -uiv --absolute-filenames < /tmp/top.bak.abs.cpio --加上-u引數自動的將較新的檔案覆蓋較舊的檔案
/tmp/top.bak
7 blocks
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17172228/viewspace-1077961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux基礎命令---cpioLinux
- Linux基礎命令—cpioLinux
- cpio 命令使用詳解
- cpio 命令
- zt:Linux cpio initrd操作Linux
- SCO UNIX上cpio命令詳細用法(轉)
- linux下.cpio.gz檔案的解壓Linux
- Linux、AIX及HP-UX作業系統下解壓縮cpio檔案命令LinuxAI作業系統
- Linux grep命令的使用Linux
- Linux lastb命令的使用LinuxAST
- linux basename命令的使用Linux
- linux命令大全-linux命令使用和管理Linux
- linux下nc命令的使用Linux
- 《Linux下sed命令的使用》Linux
- linux下svn命令的使用Linux
- 摘抄 -- cpio詳解
- cpio工具介紹
- linux cd 命令使用Linux
- linux sudo命令使用Linux
- Linux基礎命令:echo的使用Linux
- Linux 基本命令 -------- tail 的使用LinuxAI
- linux中xargs命令的使用方式Linux
- Linux中source命令的使用方式Linux
- Linux read命令的基本使用!Linux
- Linux上使用IPMITool常用的命令LinuxMIT
- linux sudo命令的概念與使用Linux
- 應熟練使用的linux命令Linux
- linux 路由基本命令的使用Linux路由
- linux下oracle安裝檔案.cpio.gz檔案的解壓LinuxOracle
- Linux下scp命令使用Linux
- Linux vmstat命令基本使用Linux
- linux下解壓.gz檔案、.cpio檔案、zip檔案Linux
- linux命令大全-linux命令使用和管理視訊教程Linux
- Linux學習之linux的find命令如何使用?Linux
- Linux 中的 JQ 命令使用例項Linux
- Linux中ip命令的使用例項Linux
- Linux 中 ss 命令的使用例項Linux
- 如何使用 Linux 的 grep 和 fgrep 命令Linux