Linux

Linux 備份檔案操作 cpio 指令教學與範例

介紹如何在 Linux 中使用 cpio 指令建立與解開 cpiotar 備份檔。

建立 cpio 備份檔案

若要使用 cpio 指令建立 cpio 備份檔案,首先要先準備好要進行備份的檔案清單:

# 列出要備份的檔案
ls *.txt
file1.txt  file2.txt  file3.txt

接著將要備份的檔案清清單交給 cpio 進行備份,以下指令會將 ls 列出的檔案備份至 archive.cpio

# 將指定檔案備份至 cpio 檔
ls *.txt | cpio -ov > archive.cpio
file1.txt
file2.txt
file3.txt
6 blocks

這裏 cpio 的兩個參數意義如下:

  • -o:從標準輸入讀取檔案清單,並將備份資料輸出至標準輸出。
  • -v:顯示詳細的檔案清單。

我們也可以直接使用 -F 參數來指定輸出的備份檔案,以下指令同樣也可以將檔案備份至 archive.cpio

# 輸出至指定的備份檔案
ls *.txt | cpio -ov -F archive.cpio
file1.txt
file2.txt
file3.txt
6 blocks

除了用 ls 列出檔案清單之外,也可以用任何其他工具來產生檔案清單,例如 find 指令:

# 將指定檔案備份至 cpio 檔
find . -name '*.txt' -print | cpio -ov > archive.cpio
./file2.txt
./file3.txt
./file1.txt
6 blocks

我們也可以利用 find 將目前目錄下的所有子目錄與檔案全部列出,交由 cpio 進行備份:

# 備份目前目錄下所有子目錄與檔案
find . -print | cpio -ov -F /backup/archive.cpio

解開 cpio 備份檔案

若要解開 cpio 備份檔案,可以使用 cpio 指令加上 -i 參數:

# 解開 cpio 備份檔
cpio -iv < archive.cpio

我們也可以直接使用 -F 參數來指定輸入的備份檔案,以下指令同樣也可以解開 archive.cpio 備份檔:

# 解開指定的 cpio 備份檔
cpio -iv -F archive.cpio

若備份檔案中含有目錄結構,可以加上 -d 參數保留目錄結構:

# 解開 cpio 備份檔,保留目錄結構
cpio -idv < archive.cpio

若要保留備份檔案的變更日期(modification time),可以加上 -m 參數:

# 解開 cpio 備份檔,保留目錄結構與檔案變更日期
cpio -idmv < archive.cpio

建立 tar 備份檔案

cpio 也可以用來建立 tar 格式的備份檔案:

# 輸出至 tar 格式備份檔
ls *.txt | cpio -ov -F archive.tar

也可以用 -H 參數指定輸出的格式,透過標準輸出來輸出資料:

# 輸出至 tar 格式備份檔
ls *.txt | cpio -ov -H tar > archive.tar

解開 tar 備份檔案

若要解開 tar 格式的備份檔案,一樣是使用 -i 參數,搭配 -F 參數指定備份檔案:

# 解開 tar 格式備份檔
cpio -iv -F archive.tar

也可以用 -H 參數指定輸入的格式,從標準輸入讀取 tar 備份檔案並將其中的檔案解開:

# 解開 tar 格式備份檔
cpio -iv -H tar < archive.tar

查看備份檔內容

若要查看 cpio 備份檔案中含有哪些檔案,可以使用 -it 參數:

# 查看 cpio 備份檔內容
cpio -it -F archive.cpio

查看 tar 備份檔案的方式也都相同:

# 查看 tar 備份檔內容
cpio -it -F archive.tar

cpio 搭配 gzip 壓縮與解壓縮

cpio 也可以搭配 gzip 這類的壓縮格式一起使用,建立 .cpio.gz 格式的備份檔:

# cpio 搭配 gzip 壓縮
ls *.txt | cpio -ov | gzip > archive.cpio.gz

若要解開 .cpio.gz 格式的備份檔,可利用以下指令:

# cpio 搭配 gzip 解壓縮
gzip -dc archive.cpio.gz | cpio -iv

複製檔案

cpio 搭配 -p 參數之後,可以用來複製檔案,效果就類似 cp 指令,但是 cpio 可以保留檔案變更時間、擁有者與群組資訊:

# 以 cpio 複製檔案,保留檔案變更時間、擁有者與群組資訊
ls *.txt | sudo cpio -pmv /home/ubuntu/new_dir/

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago