歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> Linux tar命令進行備份操作詳解

Linux tar命令進行備份操作詳解

日期:2017/3/2 16:32:48   编辑:Linux服務器

tar是Linux環境下最常用的備份工具之一。tar(taparchive)原意為操作磁帶文件,但基於Linux的文件操作機制,同樣也可適用於普通的磁盤文件。tar可用於建立、還原、查看、管理文件,也可方便的追加新文件到備份文件中,或僅更新部分的備份文件,以及解壓、刪除指定的文件。熟悉其常用參數,能方便日常的系統管理工作。

一、版本

還是那句,不同的操作系統,tar的命令參數是有點區別的:

引用# tar --version

tar (GNU tar) 1.14

二、簡單操作

命令格式:

tar [options] [tarfile] [other-files]

tar--long-option -function-options files

tar可使用的參數非常多,先列舉幾個最常用的參數:

引用-t, --list

列出歸檔文件內容目錄

-x, --extract, --get

從歸檔文件中解析文件

-c, --create

創建新的歸檔文件

上面三個參數,不能同時存在,僅能使用其中一個,即t/x/c

-f file, --file=file

指定備份文件,或設備,例如磁帶機/dev/st0

-v, --verbose

顯示命令的執行過程

-Z, --compress, --uncompress

使用compress命令處理備份文件

-z, --gzip, --gunzip, --ungzip

使用gzip命令處理備份文件

-j, --I, --bzip

使用bzip2命令處理備份文件

-z和-j都是在備份文件打包後才進行壓縮的操作的,並且,該操作會影響其他的參數,後面會再提到

-C directory, --directory=directory

先進入指定的目錄,再釋放

簡單使用:

把/etc目錄中所有的文件打包為etc.tar文件

tar -cvf /tmp/etc.tar /etc

把/etc目錄中所有的文件打包並使用gzip壓縮為etc.tar.gz文件

tar -zcvf /tmp/etc.tar.gz /etc

把/etc目錄中所有的文件打包並使用bzip2壓縮為etc.tar.bz2文件

這裡的,tar.gz或tar.bz2都是慣例,為方便標識的,例如:tgz等,並不是特定條件,但建議遵循慣例

tar -jcvf /tmp/etc.tar.bz2 /etc

查看備份包中的內容,若為已經壓縮的文件,需加上-z或者-j參數

tar -ztvf /tmp/etc.tar.gz

默認情況下,tar打包時都是使用相對路徑的,所以,釋放時,需要先進入目錄目錄,然後再解壓

同樣的,根據使用的壓縮方式,應加上-z或者-j參數

cd /tmp && tar -zxvf /tmp/etc.tar.gz

這是另一種寫法,結果和上面的相同,其會先進入/tmp目錄,然後再釋放包的

tar -zxvf /tmp/etc.tar.gz -C /tmp

釋放單個etc/passwd文件,正如前面提到的,tar包中的是相對路徑,所以不能使用“/etc/passwd”

而且,這裡不能使用-C參數,釋放文件是當前路徑的相對路徑,並帶目錄釋放

tar -zxvf /tmp/etc.tar.gz etc/passwd

tar還可以支持很多額外的參數,方便我們在備份和釋放的時候進行控制。 三、更多參數

以三大常見操作為序說明。

1、備份

引用-d, --diff, --compare

找出歸檔文件和文件系統的不同之處

-r, --append

將文件附加到歸檔文件之後

-u, --update

只附加比歸檔中新的文件

-A, --catenate

將 tar 文件附加到歸檔文件之後

--concatenate

與 -A 相同

--delete

從歸檔文件中刪除 (不能在磁帶上!)

-N date, --newer=date, --after-date=date

只將比指定日期更新的文件保存到備份文件

--exclude=pattern

排除符合查找模式的文件

-P, --absolute-names

備份文件中的文件名使用絕對路徑,而不移除文件名前的“/”,默認是相對路徑的

-l, --one-file-system

復制文件或目錄存放的文件系統必須和tar命令當前執行的文件系統相同,否則不執行;也就是講,不處理其他分區的文件。(可忽略mount掛載分區的問題)

--mode=permissions

備份時,把加入備份文件中的文件屬性修改為指定的屬性,格式和chmod命令接受的格式相同

--group=group

備份時,把加入備份文件中的文件所屬組設定成指定的組

--owner=owner

備份時,把把加入備份文件中的文件所有者設定成指定的用戶

--numeric-owner

以UID和GID代替用戶名和組名

--recursion

遞歸模式(默認)

--no-recursion

不進行遞歸處理,即不把指定目錄下的所有文件和文件夾都備份

--newer-mtime=date

Add only files whose contents have changed since date to the archive.

僅增加指定日期後修改過內容的文件到備份文件中

123下一頁
Copyright © Linux教程網 All Rights Reserved