Linux打包命令

2021-10-10 04:25:02 字數 2824 閱讀 4279

語法:tar [主選項+輔選項] 檔案或者目錄

使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。

主選項:

c 建立新的檔案檔案。如果使用者想備份乙個目錄或是一些檔案,就要選擇這個選項。相當於打包。

x 從檔案檔案中釋放檔案。相當於拆包。

t 列出檔案檔案的內容,檢視已經備份了哪些檔案。

特別注意,在引數的下達中, c/x/t 僅能存在乙個!不可同時存在!因為不可能同時壓縮與解壓縮。

輔助選項:

-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮或解壓? 一般格式為xx.tar.gz或xx. tgz

-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮或解壓?一般格式為xx.tar.bz2 

-v :壓縮的過程中顯示檔案!這個常用

-f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加其他引數!

-p :使用原檔案的原來屬性(屬性不會依據使用者而變)

--exclude file:在壓縮的過程中,不要將 file 打包!

範例:範例一:將整個 /etc 目錄下的檔案全部打包成為 /tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc    <==僅打包,不壓縮!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包後,以 gzip 壓縮

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包後,以 bzip2 壓縮

# 特別注意,在引數 f 之後的檔案檔名是自己取的,我們習慣上都用 .tar 來作為辨識。

# 如果加 z 引數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file ~

# 如果加 j 引數,則以 .tar.bz2 來作為附檔名啊~

# 上述指令在執行的時候,會顯示乙個警告訊息:

# 『tar: removing leading `/" from member names』那是關於絕對路徑的特殊設定。

範例二:查閱上述 /tmp/etc.tar.gz 檔案內有哪些檔案?

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

# 由於我們使用 gzip 壓縮,所以要查閱該 tar file 內的檔案時,

# 就得要加上 z 這個引數了!這很重要的!

範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

# 在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說

# 我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz

# 則解開的目錄會在 /usr/local/src/etc ,另外,如果您進入 /usr/local/src/etc

# 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔!

範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

# 我可以透過 tar -ztvf 來查閱 tarfile 內的檔名稱,如果單只要乙個檔案,

# 就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!

範例五:我要備份 /home, /etc ,但不要 /home/dmtsai

[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

另外:tar命令的c引數

$ tar -cvf file2.tar /home/usr2/file2

tar: removing leading '/' from members names

home/usr2/file2

該命令可以將/home/usr2/file2檔案打包到當前目錄下的file2.tar中,需要注意的是:使用絕對路徑標識的原始檔,在用tar命令壓縮後,檔名連同絕對路徑(這裡是home/usr2/,根目錄'/'被自動去掉了)一併被壓縮進來。使用tar命令解壓縮後會出現以下情況:

$ tar -xvf file2.tar

$ ls

…… …… home …… …… 

解壓縮後的檔名不是想象中的file2,而是home/usr2/file2。

$ tar -cvf file2.tar -c /home/usr2 file2

該命令中的-c dir引數,將tar的工作目錄從當前目錄改為/home/usr2,將file2檔案(不帶絕對路徑)壓縮到file2.tar中。注意:-c dir引數的作用在於改變工作目錄,其有效期為該命令中下一次-c dir引數之前。

使用tar的-c dir引數,同樣可以做到在當前目錄/home/usr1下將檔案解壓縮到其他目錄,例如:

$ tar -xvf file2.tar -c /home/usr2

而tar不用-c dir引數時是無法做到的:

$ tar -xvf file2.tar /home/usr2

tar: /tmp/file: not found in archive

tar: error exit delayed from previous errors

Linux打包命令

tar tar命令可以用來壓縮打包單檔案 多個檔案 單個目錄 多個目錄。常用格式 單個檔案壓縮打包 tar czvf my.tar file1 多個檔案壓縮打包 tar czvf my.tar file1 file2,單個目錄壓縮打包 tar czvf my.tar dir1 多個目錄壓縮打包 ta...

linux打包命令

1.壓縮gz tar zcv f www.tar.gz www 壓縮bz2 tar jcv f www.tar.bz2 www 壓縮xz tar jcv f www.tar.xz www 2.解壓縮 tar zxv f www.tar.gz 3.查詢 tar zjv f www.tar.gz c 打...

Linux打包命令

gzip與gunzip命令 gzip命令主要用於壓縮,產生的gz格式的壓縮檔案,檔案字尾名為.gz,gunzip命令用於解壓縮,將gz格式的壓縮檔案還原為原來的檔案。其用法如下 root localhost gzip testfile 使用gzip命令壓縮當前目錄下檔案testfile root l...