首頁 運維 linux運維 linux歸檔是什麼意思

linux歸檔是什麼意思

Mar 02, 2023 am 10:37 AM
linux 歸檔

linux歸檔是一個聚集眾多檔案並將它們組合為一個大檔案的過程,它通常作為系統備份的一部分,而且通常也用於將舊資料從某個系統移到某些長期存儲設備的情況;tar指令可以為linux的檔案和目錄建立檔案。

linux歸檔是什麼意思

本教學操作環境:linux5.9.8系統、Dell G3電腦。

linux歸檔是什麼意思?

歸檔是與壓縮作業配合使用的常用檔案管理任務。歸檔是一個聚集眾多檔案並將它們組合為一個大檔案的過程,它通常作為系統備份的一部分,而且通常也用於將舊資料從某個系統移到某些長期儲存裝置的情況下。

tar指令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定文件建立檔案(備份檔案),也可以在檔案中改變文件,或在檔案中加入新的文件。 tar最初被用來在磁帶上建立檔案,現在,使用者可以在任何裝置上建立檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。

Linux tar指令

tar指令是linux上將 多個檔案打包程一個檔案包。方便傳輸,也可以用於檔案備份。我們也可以用tar來解壓縮歸檔檔。

tar指令壓縮格式

tar指令支援的壓縮格式,一般我們在使用tar指令的時候會同時對檔案壓縮,以降低空間使用率。通常我們會採用以下命名規範來約定我們使用了哪一種壓縮方式。

.tar 預設模式,不會壓縮,只是將所有檔案放到一個套件裡。

.tar.gz 常用模式,採用gzip演算法壓縮。壓縮率一般,壓縮時間中等。

.tar.bz2 不常用。採用bz2演算法壓縮。壓縮率稍差,壓縮時間較短。

.tar.xz 不常用,採用xz演算法壓縮。壓縮率較好,壓縮時間較長。

tar概要簡介

tar語法介紹

 

tar 一般支援以下兩種語法格式,第二種是舊的方式。

tar OPTION... [NAME]...
tar LETTER... [ARGUMENT]... [OPTION]... [NAME]...
登入後複製

 tar的主要參數,我們稱之為【操作類型】:例如,c創建,x解壓縮。其他的參數我們稱為【附加選項】,用來改變我們操作的進展方式例如檔案名字,待歸檔的目標檔案。

主要參數 【操作類型】一定要放在最前面。

兩種語法格式中的[NAME]都是指明我們要待歸檔的檔案名字,[NAME]可以是檔案或目錄,或是多個檔案或目錄。 [NAME]一定要指定明確,而且在我們執行tar指令之前一定是要已經存在與檔案系統上。

tar的其他知識介紹

tar "將相對路徑的檔案名稱解釋為相對目錄。如果我們指定了絕對路徑, tar會將首個/去掉來進行打包。這麼做的目的是為了防止解壓縮的時候替換掉系統目錄。除非我們故意指定【--absolute-names】選項。

如果我們指定的是一個目錄的話,tar會遞歸指定目錄下所有的子目錄和檔案來進行歸檔,例如我們指定/,意思是整個檔案系統都將要被歸檔。

在使用shell通配符的時候區別檔案名稱和待歸檔成員是非常重要的。原因在於,shell只會對存在的檔案使用通配符, tar自己也會對歸檔成員使用通配,所以我們必須保證通配符只針對tar起作用,而不是shell.通常我們可以使用反斜杠\在"*"或“?”或放在單引號中,這樣舊可以了

#通常我們都會把支隊的文件放在命令列上,實際上我們也可以通過讀文件的方式來指定歸檔後來的檔名。'--files-from=FILE-OF-NAMES' ('-T FILE-OF-NAMES')

如果我們不指定歸檔後的檔名,那麼追加,刪除,等操作指令不會做任何操作。create會輸出一個診斷訊息,並阻止tar操作。其他的操作選項會對整個archive目錄操作

除了正常成功退出,tar會因為很多原因失敗。有的情況是可以恢復的,例如當tar命令不是正常組織書寫時,錯誤會推遲到直到文件處理完會報告出來。.有的錯誤可能不是故意的,但是還是有危險,那麼接下來,tar會立即退出。

然而所有非正常的退出,不論是立即的還是推遲的,都會有錯誤輸出,並且會有診斷訊息。

可能的tar程式退出碼有:0(正常退出),1(有檔案變更了),2(嚴重錯誤,不可恢復的錯誤)

tar選項風格

三種選項風格

標準tar指令一共支援8種操作模式讓我們去完成多元任務。每次使用tar指令我們只能選擇一種操作模式。根據實際情況,我們可能會希望指定tar操作模式的運作。例如我們可能修改outputs的輸出格式。或者我們想要文件格式需要我們去特殊指定操作順序。

tar選項是我們指定tar操作模式後附加的選項。根據tar的操作模式,我們可以指定一個或多個選項。不同的選項有不同的作用,通常情況下,選項會修改該操作模式具體內容。例如修改歸檔格式,歸檔檔名,或使用者互動等級。

有些選項對所有操作模式都會有效,有些選項只對特定的操作模式有效。我們會經常使用一些固定的選項。其他的可能很少用到,或基本上不會用到。

選項是大小寫敏感的,例如-T和-t是不同的,T要求一個參數名字來指明檔案名稱或檔案清單。 t則不需要參數 ,是--list的另一種書寫方式。

tar選項通常支援3 不同的風格: 長命名型(--),短命名型(-),舊命名方式(沒有-)。操作模式或選項都可以使用任一風格。 3中不同的風格是在不同的時期發展出來嘚。

有些選項是需要一個參數的,在哪裡放置參數,通常的時候需要根據我們使用哪種風格。這些差異可能是微妙的,但是卻很重要。選項放置在錯誤的位置,可能會導致覆蓋一些重要的文件。我們必須要注意到這些不同點。而且只使用我們所了解的選項,直到我們對其他的選項也了解了。那些需要接收參數的選項,他們可能會有最長或短的形式,而沒有舊風格的對應選項。使用這些需要指定參數的選項的規則是非常嚴謹的。

例如--file選項需要接收一個歸檔檔案名稱作為參數。如果我們不指定歸檔檔名,tar會使用一個預設的但另我們困惑名字,建議我們一定要指定一個具體的歸檔檔名字。

長命名選項風格

tar所有的參數選項都至少有一個長命名型的參數。長命名參數選項比短命名和舊參數名字類型顯示更清晰的。有的時候長名字選項會有不同的名字但是卻是相同的作用,例如--compare和--dif是同一個意思。另外長命名方式,也可以使用唯一的縮寫,例如--create可以用--cre來代替。因為沒有其他的選項以--cre開頭。

tar 長命名選項更明顯的和容易記憶,而且他們的名字也容易辨認。例如 tar --create --verbose --blocking-factor=20 --file=/dev/rmt0,全部使用的是長命名型參數,可以顯而易見的看出每個參數的意義。

長命名選項必須接收參數的話,要立即在該選項後面書寫, 有兩種方式去指定必須的參數,一種是使用空格,另一種是使用=符號。例如--file選項我們可以使用--file archive.tar 或--file=archive.tar兩種方式來制定參數。

對應地,如果選項可以接收也可以不接收參數的話。這種情況下如果要接收參數,則必須使用=符號來指定。例如 --backup 可選接收參數。如果要指定的話,必須使用'--backup=BACKUP-TYPE'.

短命名選項風格

 大多數的選項也有對應的短命名選項,短命名選項使用-符號,並且緊跟著一個字母。例如 -t(對應長命名選項--list),這些形式在功能上是完全相同的,可以互換。

 相對於長命名選項,短命名方式一個明顯的優點就是書寫很方便。

短命名選項如果需要在選項後面立即接收參數的話,通常以空格來實現。也可以省略空格,立即接著選項書寫,例如指定歸檔名字我們可以使用-f archive.tar(有空格) -farchive.tar(省略空格),--file=archive.tar. -f ARCHIVE-NAME和- -file=ARCHIVE-NAME都表示這個選項指定了歸檔檔名。

有可選參數的短命名選項,如果要指定參數的時候,需要參數緊跟短選項名字,不能使用任何空格。

短命名選項可以放在一起書寫,但不是要求的。當短選項以集合成片出現時,僅在選項開始使用一個-,例如tar -cvf,同時只有最後一個選項允許接收必須參數。 (將許多選項集中在一起,最後一個選項有一個參數,這是一種相當不透明的寫法。)

當選項分開使用時,每個選項的參數需要緊跟著該選項。  tar -c -v -b 20 -f /dev/rmt0。如果參數沒有調整好,可能會導致檔案被覆蓋。

當我們重新調整選項時,要注意同時移動屬於該選項的參數。

 

舊選項樣式

像短命名选项一样,旧选项风格也只有一个字母。但是,旧风格选项必须将所有选项放在一起,不得有空格将他们分开,或者-连接他们。在tar命令和空格之后,比较紧跟这些字母选项的集合。旧选项不能在任意地方出现。旧选项风格的选项和短命名风格的选项含义是一样的。例如 在旧选项风格中,选项 t 和 短命名选项-t 已经长命名选项--list有一样的作用。 tar cv 命令中,选项v是c选项的额外附加内容。

在旧选项风格中,但选项需要参数的时候,这些选项要一起提供,所有的选项按选项书写顺序提供。例如 tar -c -v -b 20 -f /dev/rmt0 要写成 tar cvbf 20 /dev/rmt0这里20是b选项的参数 /dev/rmnt0是f的参数。

我们可以看出,旧风格选项,匹配选项字母和对应的参数是很困难的,而且很容易令人困惑。短命名方式逗比旧命名方式要好很多。如果要调整选项的字母,必须要同时准确地调整对应的参数位置。

旧选项风格有的时候甚至可以震惊一个熟悉的用户。

tar cfz archive.tar.gz file 这个例子中 archive.tar.gz 被认为是f的参数,z是压缩选项。

tar -cfz archive.tar.gz file 这个例子中 z会被认为是f的选项值,尽管不是我们想的。

旧选项风格是为了向下兼容而保留的。而且很多用户已经习惯了这种方式。

第二个例子我们有几种方式来修改。

tar -czf archive.tar.gz file
tar -cf archive.tar.gz -z file
tar cf archive.tar.gz -z file
登入後複製

通常tar命令的第一个选项一般都会当做包含操作模式和选项来对待处理,尽管没有用-开始。因此 tar c与tar -c一样,都是和--create一样来创建归档。

混合选项风格

三种选项风格可以同时出现在一条tar 命令中,但是旧选项必须在tar命令后 第一个出现,现代风格的选项必须在旧选项集合输入之后出现,这个是必须遵守的原则,否则可能我们输入的命令跟我们预想的结果根本不一样。可能会造成严重的错误或灾难。

 tar选项

操作模式

'--concatenate'  '--catenate' '-A' 将其他归档文件放在当前归档文件末尾

'--append' ' -r'  追加文件到归档文件

'--compare'  '--diff'  '-d'  将归档文件和文件系统上的文件进行对比

'--create' '-c' 创建一个归档文件

'--delete' 从归档文件中删除一些文件。(不能在tape上操作)

'--extract' '--get' '-x' 提取归档文件到当前文件系统

'--list'  '-t' 显示归档文件的组成文件列表

'--update'  '-u' 更新归档文件中的某个文件,只有在该文件有更新时。或者不存在与归档文件。

 

通用选项

-C, --directory=DIR  改变工作目录。

-f, --file=ARCHIVE  指定归档文件名

-j, --bzip2  使用bzip2压缩方式过滤

-J, --xz  使用xz压缩方式过滤

-p, --preserve-permissions 解压时保留文件的权限。

-v, --verbose 详细的列出处理的文件

-z, --gzip  使用gzip压缩方式过滤

提取时覆盖选项

--remove-files 提取归档后删除归档文件

-k --keep-old-files 执行的时候不覆盖已经存在的文件,会输出错误

--keep-newer-files 执行的时候不覆盖比archive里文件新的文件

--keep-directory-symlink 不把已经存在的连接替换成目录

--no-overwrite-dir 保存已经存在的目录的原信息

--overwrite  覆盖已经存在的文件

--overwrite-dir 覆盖已经存在的目录

--recursive-unlink 在提取目录文件前清除该目录结构

--skip-old-files 不替换已经存在的文件。静默方式跳过

-U, --unlink-first 在提取之前先删除所有文件

-W, --verify 校验

 

处理文件的属性

--atime-preserve[=METHOD]  保存文件atime到归档文件

--delay-directory-restore 直到解压完才改变目录的时间戳属性

--group=NAME 强制修改文件所属组

--mode=CHANGES 强制连接模式修改

--mtime=DATE-OR-FILE 修改文件的mtime

-m, --touch 不提取文件的 mtime

--no-delay-directory-restore 取消delay-directory-restore

--no-same-owner  extract files as yourself (default for ordinary users)

--no-same-permissions  apply the user's umask when extracting permissions from the archive (default for ordinary users)

--numeric-owner 使用number来表示owner和group

--owner=NAME  修改归档的文件的owner

-p, --preserve-permissions, --same-permissions 保留檔案的屬性

--preserve  保留檔案的屬性same as both -p and -s

-- same-owner  保留檔案的屬性

-s, --preserve-order, --same-order 保留檔案的屬性

 

##本機目錄檔案的選擇

--add-file=FILE 最加檔案到歸檔中如果一個檔案名字以-開始

--backup[=CONTROL]  刪除之前先備份

#-C, --directory=DIR 修改工作目錄到指定目錄

--exclude=PATTERN 排除一些檔案

--exclude-backups 排除掉備份和鎖定檔案

--exclude-caches 排除掉cache(CACHEDIR.TAG)的目錄其他文件,除了tagfile

--exclude-caches-all  排除掉包括CACHEDIR.TAG的目錄

#--exclude-caches-under 排除掉所有有tagfile的目錄的其他文件,但是有目錄

--exclude-tag=FILE 排除掉指定含義某文件的目錄,除了該文件

exclude contents of directories containing FILE, except for FILE itself

--exclude-tag-all=FILE exclude directories containing FILE 排除掉有某檔案的整個目錄

--exclude -tag-under=FILE 排除掉有某文件的目錄裡的所有內容

--exclude-vcs  排除掉vcs版本控制的目錄

-h, --dereference 保存軟連,將目標檔案也歸檔起來

follow symlinks; archive and dump the files they point to

--hard-dereference 保存硬軟連,將目標檔案也歸檔起來

-K, --starting-file=MEMBER-NAME 以目錄中某個檔案開始歸檔,前面的檔案不歸檔

--newer-mtime=DATE 當內容修改時,比較文件的日期和時間

-P, --absolute-names  以絕對路徑來打包。提取時會覆寫原始檔案--recursion

--suffix=STRING 刪除之前先備份,以設定的前綴來覆寫

-X, --exclude-from=FILE    排除掉指定文件裡的約定的文件

推薦學習:《

Linux影片教學

以上是linux歸檔是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

See all articles