cpio是一種歸檔格式,可以將多個文件和目錄打包成一個單獨的文件,同時保留文件的權限、所有權和時間戳等信息。cpio 命令可以用來創(chuàng)建、提取和管理這種歸檔文件。打包時,通過管道將文件列表傳遞給cpio -ov,輸出到歸檔文件,cpio不遞歸目錄,需依賴find;解包會覆蓋同名文件,操作前建議先用-t預覽內(nèi)容。
Linux常用命令cpio怎么用?
cpio 是 Linux 中用于歸檔和備份文件的命令,支持將文件打包或解包。以下是其核心用法和示例:
一、基本語法
bash# 打包文件(需配合find或ls生成文件列表)find <目錄> | cpio -ov > <歸檔文件.cpio># 解包文件cpio -idv < <歸檔文件.cpio>
二、常用選項
選項作用
-o創(chuàng)建歸檔(輸出模式)
-i解包歸檔(輸入模式)
-v顯示操作詳情
-d解包時自動創(chuàng)建目錄
-t列出歸檔內(nèi)容
-F指定歸檔文件名
三、典型用法示例
1. 打包文件
bash# 將當前目錄下所有文件打包到 backup.cpiofind . | cpio -ov > backup.cpio# 僅打包特定文件類型(如.txt)find . -name "*.txt" | cpio -ov > texts.cpio
2. 解包文件
bash# 解包到當前目錄cpio -idv < backup.cpio# 指定解包目錄mkdir restore && cd restorecpio -idv < ../backup.cpio
3. 列出歸檔內(nèi)容
bashcpio -itv < backup.cpio
4. 使用 -F 替代重定向
bash# 打包cpio -ov -F backup.cpio < file_list.txt# 解包cpio -idv -F backup.cpio
四、與 find 結合的高級用法
bash# 排除特定目錄(如./tmp)find . -path './tmp' -prune -o -print | cpio -ov > filtered.cpio# 按時間范圍打包(7天內(nèi)修改的文件)find . -mtime -7 | cpio -ov > recent.cpio
五、注意事項
依賴文件列表:cpio 本身不遞歸目錄,需通過 find 或 ls 生成文件列表。
解包覆蓋風險:解包時會直接覆蓋同名文件,建議先測試。
壓縮支持:可通過管道結合 gzip 實現(xiàn)壓縮:
bash# 打包并壓縮find . | cpio -ov | gzip > backup.cpio.gz# 解壓并解包gunzip -c backup.cpio.gz | cpio -idv
cpio 是 Linux 中用于打包/解包文件的命令,需配合文件列表使用。通過靈活組合 cpio 與 find,可以高效完成定制化備份任務,尤其適合腳本自動化場景,跟著小編一起學習下吧。