博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下常用的压缩解压命令[收藏]
阅读量:6990 次
发布时间:2019-06-27

本文共 10864 字,大约阅读时间需要 36 分钟。

备份和恢复的技能在操作系统的管理中应用相当广泛。

这部分内容主要通过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

     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/371276,如需转载请自行联系原作者

你可能感兴趣的文章
硬盘灾后价格依旧:两年内恐难降价
查看>>
子域名枚举、探测工具AQUATONE 使用指南
查看>>
后Hadoop时代的大数据架构
查看>>
《数据虚拟化:商务智能系统的数据架构与管理》一 1.4 什么是数据虚拟化
查看>>
《逻辑与计算机设计基础(原书第5版)》——1.9 习题
查看>>
Joomla 对象注入漏洞分析报告
查看>>
停止去人性化吧 SOC应找回人的元素
查看>>
合力亿捷云客服3.0 开启“全员客服”新时代
查看>>
2016年全球网络空间安全大预测
查看>>
你知道国家教育部是如何实现全国数据大集中的吗?
查看>>
北京邮电大学计算机与围棋研究所所长刘知青:AlphaGo与柯洁人机大战展望
查看>>
光网络发展趋势:SDN可预见
查看>>
程序员未来发展三大方向
查看>>
去年做路由器的那帮兄弟都去哪儿了?
查看>>
温故2015,展望2016 IT发展趋势
查看>>
大数据产业:完善生态链进入关键期
查看>>
iOS自动布局框架 – Masonry详解
查看>>
你不知道的六大Apache大数据项目新星
查看>>
推荐10款国外基于云端的IDE环境
查看>>
[图]iOS 11的20项细节调整:更加人性化
查看>>