歡迎您光臨本站 註冊首頁

Linux下常用的壓縮解壓命令[收藏]

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

備份和恢復的技能在操作系統的管理中應用相當廣泛.

這部分內容主要通過tar命令配合cron、date命令及其它的一些技巧來實現自動化備份和恢復.

tar命令的一些幫助信息:
NAME
tar - The GNU version of the tar archiving utility

SYNOPSIS
tar <operation> [options]

Operations:
[-]A --catenate --concatenate
[-]c --create
[-]d --diff --compare
[-]r --append
[-]t --list
[-]u --update
[-]x --extract --get
--delete

Common Options:
-C, --directory DIR
-f, --file F
-j, --bzip2
-p, --preserve-permissions
-v, --verbose
-z, --gzip


注意tar有些特殊,甚至於支持沒-的參數.但我個人不提倡.腳本是用來應用,應該是易於理解的.

我們平時經常用的參數有:
tar xzvf 解壓一個*.tar.gz文件
tar xjvf 解壓一個*.tar.bz2的文件

tar czvf 壓縮成一個*.tar.gz的文件
tar xjvf 壓縮成一個*.tar.bz2的文件

如果去掉v,就不顯示詳細信息,實際在腳本中,如果不需要交互或隱藏執行過程的話,不要加好了.

我們還可以通過-C的參數來指定解壓的目錄.


下面參數之一必須使用:
c
x

z 是gzip的壓縮格式,壓縮後文件後綴為gz;
j 是bzip2的壓縮格式,壓縮後文件後綴為bz2.

A 是添加壓縮包到已經存在的一個壓縮包中.

u 指比較壓縮包中的文件和當前文件,如果比壓縮包的更新,就替換掉.
r 添加文件或文件夾到一個已經存在的壓縮包中.

-t這是顯示壓縮文件文件列表.

-d 比較壓縮包中的文件與文件系統中的文件的差異.
--delete 從壓縮包中刪除文件或文件夾.


如果在腳本中,我們為了更容易識別不同時創建的文件,我們可以用日期給壓縮包命名.

這裡我們可以看一個示例:
#!/bin/sh

cd /home/admin/backup

year=`date %Y`

month=`date %m`

day=`date %d`

now=$year-$month-$day

mkdir backup_$now

tar zcvf backup_$now/backup.tar.gz /home/html

關於如何通過date來顯示當前的時間,請查閱詳細的date man 手冊,但要注意一些重點參數,需要識記.

同時我們還可以通過腳本來實現周一全備,以後每天一次增量備份,周日提醒光碟備份,當然所有這些都需要腳本和計劃任務cron的參與,關於cron請查看相關的幫助.


FORMAT controls the output. The only valid option for the second form specifies Coordinated
Universal Time. Interpreted sequences are:

%% a literal %

%a locale’s abbreviated weekday name (e.g., Sun)

%A locale’s full weekday name (e.g., Sunday)

%b locale’s abbreviated month name (e.g., Jan)

%B locale’s full month name (e.g., January)

%c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005)

%C century; like %Y, except omit last two digits (e.g., 21)

%d day of month (e.g, 01)

%D date; same as %m/%d/%y

%e day of month, space padded; same as %_d

%F full date; same as %Y-%m-%d

%g last two digits of year of ISO week number (see %G)

%G year of ISO week number (see %V); normally useful only with %V

%h same as %b

%H hour (00..23)

%I hour (01..12)

%j day of year (001..366)

%k hour ( 0..23)

%l hour ( 1..12)

%m month (01..12)

%M minute (00..59)

%n a newline

%N nanoseconds (000000000..999999999)

%p locale’s equivalent of either AM or PM; blank if not known

%P like %p, but lower case

%r locale’s 12-hour clock time (e.g., 11:11:04 PM)

%R 24-hour hour and minute; same as %H:%M

%s seconds since 1970-01-01 00:00:00 UTC

%S second (00..60)

%t a tab

%T time; same as %H:%M:%S

%u day of week (1..7); 1 is Monday

%U week number of year, with Sunday as first day of week (00..53)

%V ISO week number, with Monday as first day of week (01..53)

%w day of week (0..6); 0 is Sunday

%W week number of year, with Monday as first day of week (00..53)

%x locale’s date representation (e.g., 12/31/99)

%X locale’s time representation (e.g., 23:13:48)

%y last two digits of year (00..99)

%Y year

%z hhmm numeric timezone (e.g., -0400)

%:z hh:mm numeric timezone (e.g., -04:00)

%::z hh:mm:ss numeric time zone (e.g., -04:00:00)

%:::z numeric time zone with : to necessary precision (e.g., -04, 05:30)

%Z alphabetic time zone abbreviation (e.g., EDT)

By default, date pads numeric fields with zeroes. The following optional flags may follow ‘%’:

- (hyphen) do not pad the field _ (underscore) pad with spaces 0 (zero) pad with zeros ^


use upper case if possible # use opposite case if possible

After any flags comes an optional field width, as a decimal number; then an optional modifier,
which is either E to use the locale’s alternate representations if available, or O to use the
locale’s alternate numeric symbols if available.


我們也可以通過tar實現增量備份,這個就需要我們查看tar的官方文檔.
-g, --listed-incremental F
create/list/extract new GNU-format incremental backup

-G, --incremental
create/list/extract old GNU-format incremental backup

如何跟蹤軟鏈接
-h, --dereference
don’t dump symlinks; dump the files they point to
保持原來的文件結構
-l, --one-file-system
stay in local file system when creating an archive


ALL OPTIONS
--atime-preserve
don’t change access times on dumped files

-b, --blocking-factor N
block size of Nx512 bytes (default N=20)

-B, --read-full-blocks
reblock as we read (for reading 4.2BSD pipes)

--backup BACKUP-TYPE
backup files instead of deleting them using BACKUP-TYPE simple or numbered

--block-compress
block the output of compression program for tapes

-C, --directory DIR
change to directory DIR
--check-links
warn if number of hard links to the file on the filesystem mismatch the number of links
recorded in the archive

--checkpoint
print directory names while reading the archive

-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)

-F, --info-script F --new-volume-script F
run script at end of each tape (implies --multi-volume)

--force-local
archive file is local even if has a colon

--format FORMAT
selects output archive format
v7 - Unix V7
oldgnu - GNU tar <=1.12
gnu - GNU tar 1.13
ustar - POSIX.1-1988
posix - POSIX.1-2001

-g, --listed-incremental F
create/list/extract new GNU-format incremental backup

-G, --incremental
create/list/extract old GNU-format incremental backup

-h, --dereference
don’t dump symlinks; dump the files they point to

--help like this manpage, but not as cool

-i, --ignore-zeros
ignore blocks of zeros in archive (normally mean EOF)

--ignore-case
ignore case when excluding files

--ignore-failed-read
don’t exit with non-zero status on unreadable files

--index-file FILE
send verbose output to FILE instead of stdout

-j, --bzip2
filter archive through bzip2, use to decompress .bz2 files

-k, --keep-old-files
keep existing files; don’t overwrite them from archive

-K, --starting-file F
begin at file F in the archive

--keep-newer-files
do not overwrite files which are newer than the archive

-l, --one-file-system
stay in local file system when creating an archive

-L, --tape-length N
change tapes after writing N*1024 bytes

-m, --touch, --modification-time
don’t extract file modified time

-M, --multi-volume
create/list/extract multi-volume archive

--mode PERMISSIONS
apply PERMISSIONS while adding files (see chmod(1))

-N, --after-date DATE, --newer DATE
only store files newer than DATE

--newer-mtime DATE
like --newer, but with a DATE

--no-anchored
match any subsequenceof the name’s components with --exclude

--no-ignore-case
use case-sensitive matching with --exclude

--no-recursion
don’t recurse into directories

--no-same-permissions
apply user’s umask when extracting files instead of recorded permissions

--no-wildcards
don’t use wildcards with --exclude

--no-wildcards-match-slash
wildcards do not match slashes (/) with --exclude

--null --files-from reads null-terminated names, disable --directory

--numeric-owner
always use numbers for user/group names

-o, --old-archive, --portability
like --format=v7; -o exhibits this behavior when creating an archive (deprecated behav-
ior)

-o, --no-same-owner
do not attempt to restore ownership when extracting; -o exhibits this behavior when
extracting an archive

-O, --to-stdout
extract files to standard output

--occurrence NUM
process only NUM occurrences of each named file; used with --delete, --diff, --extract,


or --list

--overwrite
overwrite existing files and directory metadata when extracting

--overwrite-dir
overwrite directory metadata when extracting

--owner USER
change owner of extraced files to USER

-p, --same-permissions, --preserve-permissions
extract all protection information

-P, --absolute-names
don’t strip leading ‘/’s from file names

--pax-option KEYWORD-LIST
used only with POSIX.1-2001 archives to modify the way tar handles extended header key-
words

--posix
like --format=posix

--preserve
like --preserve-permissions --same-order

--acls this option causes tar to store each file’s ACLs in the archive.

--selinux
this option causes tar to store each file’s SELinux security context information in the
archive.

--xattrs
this option causes tar to store each file’s extended attributes in the archive. This
option also enables --acls and--selinux if they haven’t been set already, due to the
fact that the data for those are stored in special xattrs.

--no-acls
This option causes tar not to store each file’s ACLs in the archive and not to extract
any ACL information in an archive.

--no-selinux
this option causes tar not to store each file’s SELinux security context information in
the archive and not to extract any SELinux information in an archive.

--no-xattrs
this option causes tar not to store each file’s extended attributes in the archive and


not to extract any extended attributes in an archive. This option also enables --no-acls
and --no-selinux if they haven’t been set already.

-R, --record-number
show record number within archive with each message

--record-size SIZE
use SIZE bytes per record when accessing archives

--recursion
recurse into directories

--recursive-unlink
remove existing directories before extracting directories of the same name

--remove-files
remove files after adding them to the archive

--rmt-command CMD
use CMD instead of the default /usr/sbin/rmt

--rsh-command CMD
use remote CMD instead of rsh(1)

-s, --same-order, --preserve-order
list of names to extract is sorted to match archive

-S, --sparse
handle sparse files efficiently

--same-owner
create extracted files with the same ownership

--show-defaults
display the default options used by tar

--show-omitted-dirs
print directories tar skips while operating on an archive

--strip-components NUMBER, --strip-path NUMBER
strip NUMBER of leading components from file names before extraction

(1) tar-1.14 uses --strip-path, tar-1.14.90 uses --strip-components
--suffix SUFFIX
use SUFFIX instead of default ’~’ when backing up files

-T, --files-from F
get names to extract or create from file F

--totals
print total bytes written with --create

-U, --unlink-first


remove existing files before extracting files of the same name

--use-compress-program PROG
access the archive through PROG which is generally a compression program

--utc display file modification dates in UTC

-v, --verbose
verbosely list files processed

-V, --label NAME
create archive with volume name NAME

--version
print tar program version number

--volno-file F
keep track of which volume of a multi-volume archive its working in FILE; used with
--multi-volume

-w, --interactive, --confirmation
ask for confirmation for every action

-W, --verify
attempt to verify the archive after writing it

--wildcards
use wildcards with --exclude

--wildcards-match-slash
wildcards match slashes (/) with --exclude

--exclude PATTERN
exclude files based upon PATTERN

-X, --exclude-from FILE
exclude files listed in FILE

-Z, --compress, --uncompress
filter the archive through compress

-z, --gzip, --gunzip, --ungzip
filter the archive through gzip

--use-compress-program PROG
filter the archive through PROG (which must accept -d)

-[0-7][lmh]
specify drive and density


[火星人 ] Linux下常用的壓縮解壓命令[收藏]已經有796次圍觀

http://coctec.com/docs/linux/show-post-50443.html