常見 GNU Tar 命令備忘單
GNU Tar 是一個強大的命令行歸檔實用程序,適用於Linux 和其他類 UNIX 操作系統。它首先由貝爾實驗室開發,用於在存檔磁帶備份上可靠地存儲任何數字媒體。如今,GNU Tar 是一個“全能者”,可以以易於傳輸的格式存儲任何文件。
GNU Tar 的強大功能之一是它在數據處理方面的靈活性。它提供的選項允許您壓縮、提取甚至將存檔重定向到 UNIX 管道。這使得 GNU Tar 成為存儲數據並通過命令行操作數據的有用工具。
此備忘單將向您展示 GNU Tar 中可用於在 Linux 中操作 Tar 文件的命令。不僅如此,它還會顯示一些高級選項,讓您了解存檔的內部結構。
命令 | 描述 |
---|---|
創建檔案 | |
焦油-cf。/輸出.tar。/輸入/ | 從文件夾“input”中創建一個名為“output.tar”的存檔。 |
焦油-cf。/device.tar /dev/sda1 | 使用整個 sda1 分區的內容創建名為“device.tar”的存檔。 |
焦油-czf。/輸出.tar.gz。/輸入/ | 從文件夾“input”創建一個名為“output.tar”的存檔。 |
tar -cjf。/輸出.tar.bz2。/輸入/ | 創建一個名為“output.tar.gz”的存檔並使用 GZIP 算法對其進行壓縮。 |
焦油-cJf。/輸出.tar.xz。/輸入/ | 創建一個名為“output.tar.xz”的新存檔,並使用 XZ 算法對其進行壓縮。 |
焦油-cZf。/輸出.tar.z。/輸入/ | 創建一個名為“output.tar.xz”的新存檔並使用 XZ 算法對其進行壓縮。 |
tar –lzip -cf。/輸出.tar.lz。/輸入/ | 創建一個名為“output.tar.z”的新存檔並使用 LZ 算法對其進行壓縮。 |
tar –lzop -cf. /output.tar.lzo。/輸入/ | 創建一個名為“output.tar.lz”的新存檔並使用 LZIP 算法對其進行壓縮。 |
焦油 -cML 1024000 -f。/輸出.tar。/大文件 | 將文件“large.file”拆分為一組 1GB 的多部分存檔。 |
焦油-hcf。/輸出.tar。/input.link | 創建一個名為“output.tar.lzo”的新存檔並使用 LZOP 算法對其進行壓縮。 |
tar –format=v7 -cf.tar –format=v7 -cf. /輸出.tar。/輸入/ | 確保“output.tar”存檔與原始 V7 UNIX tar 兼容。 |
tar –sort=名稱 -cf. /輸出.tar。/輸入/ | 創建一個名為“output.tar”的新存檔,並按字母順序對其內容進行排序。 |
tar –警告=無-cf. /輸出.tar。/輸入/ | 創建“output.tar”時禁用所有警告消息。 |
tar –警告=全部-cf。/輸出.tar。/輸入/ | 創建“output.tar”時打印所有警告消息。 |
tar -wcf。/輸出.tar。/輸入/ | 在存檔創建過程中啟用 Tar 的交互模式。 |
過濾存檔成員 | |
tar –排除備份-cf。/輸出.tar。/輸入/ | 創建存檔,但不要在最終輸出中包含任何數據庫鎖定文件以及二進製備份文件。 |
tar –排除緩存-cf。/輸出.tar。/輸入/ | 創建存檔但不在最終輸出中包含任何緩存文件。 |
tar –排除-vcs-cf。/輸出.tar。/輸入/ | 創建一個存檔,但不要在最終輸出中包含任何名為“foo”的文件。 |
tar –排除=foo -cf。/輸出.tar。/輸入/ | 創建一個存檔,但不要在最終輸出中包含任何名為“foo”的文件。 |
tar –exclude-tag-all=foo -cf. /輸出.tar。/輸入/ | 創建存檔,但不包含任何包含文件“foo”的文件夾。 |
tar –無遞歸-cf。/輸出.tar。/輸入/ | 創建存檔但不下降到當前文件夾中的任何子目錄。 |
tar –不取消引用-cf。/輸出.tar。/“輸入”/ | 創建存檔並將輸入文件夾中的引號視為文字字符。 |
焦油-Pcf。/output.tar /home/$USER/input/ | 創建一個存檔並確保其中的所有目錄路徑都是絕對路徑。 |
tar –newer=2023-06-30 -cf. /輸出.tar。/輸入/ | 創建存檔,但僅包含“input”文件夾內 6 月 30 日之後創建的文件。 |
tar –刪除文件-cf。/輸出.tar。/輸入/ | 創建存檔並在存檔完成後刪除“input”文件夾的內容。 |
tar -Wcf。/輸出.tar。/輸入/ | 創建存檔並在完成後驗證其完整性。 |
tar –忽略大小寫-cf。/輸出.tar。/輸入/ | 創建新檔案時禁用 Tar 的區分大小寫。 |
tar -C /其他/目錄 -cf。/輸出.tar。/輸入/ | 移動 Tar 的當前工作目錄並使用其中的輸入文件夾創建存檔。 |
檢查檔案 | |
焦油-tf。/輸出.tar | 以短格式打印“output.tar”的內容。 |
tar -tvf。/輸出.tar | 以長格式打印“output.tar”的內容。 |
tar –index-file=foo -tvf.tar –index-file=foo -tvf. /輸出.tar | 以長格式打印“output.tar”的內容並保存在文件“foo”中。 |
tar –utc-tvf。/輸出.tar | 打印“output.tar”的內容並將所有修改時間轉換為 UTC。 |
tar –總計-tvf。/輸出.tar | 打印“output.tar”的內容並顯示存檔的總字節數。 |
tar –檢查點-cf。/輸出.tar。/輸入/ | 每10個歸檔成員打印當前tar文件的歸檔過程。 |
tar -tvRf。/輸出.tar | 打印“output.tar”中每個成員的塊號。 |
修改檔案 | |
tar –group=foo -xf.tar –group=foo -xf.tar –group=foo -xf. /輸出.tar | 僅在“output.tar”存檔末尾包含較新的內容。 |
tar –user=foo -xf.tar –user=foo -xf.tar –user=foo -xf. /輸出.tar | 僅包含“output.tar”存檔末尾的較新內容。 |
tar -rf。/輸出.tar。/新輸入/ | 將文件夾“new-input”的內容包含在“output.tar”存檔的末尾。 |
tar -uf。/輸出.tar。/輸入/ | 將所有存檔內容的所有者更新為“foo”。 |
tar –checkpoint-action=’cmd’ -cf. /輸出.tar。/輸入/ | 每 10 個存檔成員對存檔運行一次命令“cmd”。 |
提取檔案 | |
tar -xf。/輸出.tar | 在當前工作目錄中提取“output.tar”。 |
tar -xkf。/輸出.tar | 提取“output.tar”,但不要替換目錄中當前存在的任何文件。 |
tar –保留較新的文件-xf。/輸出.tar | 提取“output.tar”,但不要替換任何比存檔內容更新的文件。 |
tar –no-overwrite-dir -xf。/輸出.tar | 提取“output.tar”,但不要修改當前目錄中任何文件夾的屬性。 |
tar –keep-directory-symlink -xf。/輸出.tar | 提取“output.tar”,但不要修改當前目錄中的任何符號鏈接。 |
tar –覆蓋-xf。/輸出.tar | 提取“output.tar”並替換當前目錄中的所有文件。 |
tar -mxf。/輸出.tar | 提取“output.tar”,但在提取過程中不要使用存檔文件的“mtime”值。 |
tar –保留-xf。/輸出.tar | 提取“output.tar”,並且不將用戶和組權限更新為當前用戶。 |
tar -wxf。/輸出.tar | 在存檔提取過程中啟用 Tar 的交互模式。 |
tar –strip-components=3 -xf.tar –strip-components=3 -xf. /輸出.tar | 僅提取“output.tar”中三個目錄深度的任何文件。 |
tar –transform=s/pattern/string/ -xf. /輸出.tar | 提取“output.tar”存檔並將名稱為“pattern”的每個文件替換為“string”。 |
tar –警告=無-xf. /輸出.tar | 提取“output.tar”時禁用所有警告消息。 |
tar –警告=全部-xf。/輸出.tar | 提取“output.tar”時打印所有警告消息。 |
圖片來源:Unsplash。所有改動均由 Ramces Red 進行。
發佈留言