linux下备份一个目录下所有文件及目录,应该用什么命令?

linux下备份一个目录下所有文件及目录,应该用什么命令?,第1张

这里教大家如何用find、xargs和tar命令完成上面的功能。

建立一个测试环境,新建几个文件

# cd /tmp

# mkdir test

# cd test

# touch a.php b.js c.css 1.png

# ls

1.png  a.php  b.js  c.css

接下来,通过find命令找出指定后缀的文件,为了支持多个后缀文件,find命令用到了正则匹配

# find . -type f -regex ".*\.\(php\|js\|css\)"

./b.js

./a.php

./c.css

-regex后面的参数看起来很复杂,其实很简单,我来做个解释,双引号就不需要解释了吧

.*\.\(php\|js\|css\) 简化一下就是.*.(php|js|css),其实就是对.()|做了下转义而已,开头的.*匹配除换行符外的任意字符(这个懂正则表达式的应该都明白)

找出文件后,就是如何备份这些文件了,tar需要指定源文件,怎么获取find出来的这些文件,并传给tar呢,xargs的作用就来了。看到下面xargs输出的是什么了吧,这个正是tar需要的。

# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs

./b.js ./a.php ./c.css

# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs tar czvf test.tar.gz

./b.js

./a.php

./c.css

下面看看文件是否备份成功了

# tar tzvf test.tar.gz

-rw-r--r-- root/root         0 2014-03-14 10:38 ./b.js

-rw-r--r-- root/root         0 2014-03-14 10:37 ./a.php

-rw-r--r-- root/root         0 2014-03-14 10:38 ./c.css

linux备份文件夹的命令是什么?在Linux *** 作系统中,可用于备份文件夹的命令有两个:cp命令、dump命令,本文为大家详细介绍一下这两个命令,希望能够给你们带来帮助。

1、dump命令

Linux dump命令用于备份文件系统。

dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

语法:

dump[-cnu][-0123456789][-b

<区块大小>][-B<区块数目>][-d<密度>][-f<设备名称>][-h<层级>][-s<磁带长度>][-T<日期>][目录或文件系统]或dump[-wW]

参数:

-0123456789 备份的层级

-b<区块大小>指定区块的大小,单位为KB

-B<区块数目>指定备份卷册的区块数目

-c 修改备份磁带预设的密度与容量

-d<密度>设置磁带的密度,单位为BPI

-f<设备名称>指定备份设备

-h<层级>当备份层级等于或大于指定的层级时,将不备份用户标示为nodump的文件

-n 当备份工作需要管理员介入时,向所有operator群组中的使用者发出通知

-s<磁带长度>备份磁带的长度,单位为英尺

-T<日期>指定开始备份的时间与日期

-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等

-w 与-W类似,但仅显示需要备份的文件

-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。

2、cp命令

Linux cp命令主要用于复制文件或目录。

语法:

①cp [options] source dest

②cp [options] source... directory

参数:

-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容,其作用等于dpR参数组合

-d 复制时保留链接,这里所说的链接相当于Windows系统中的快捷方式

-f 覆盖已经存在的目标文件而不给出提示

-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y时目标文件将被覆盖

-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中

-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件

-l 不复制文件,只是生成链接文件。

一、使用tar命令进行备份:

tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下都采用tar进行文件整理和压缩。

/* 把/root整个目录进行压缩备份 */

# tar cvzf /tmp/root_backup_1215.tar.gz /root

那么就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。

说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是

基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。

同时,也很容易把已经打包压缩的文件进行恢复:

/* 从备份文件中进行还原 */

# tar tkvzf root_backup_1215.tar.gz

二、使用cpio备份存档:

cpio (copy in/out) 命令可以建立存档,跟tar不同之处在于,能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。

如果要备份root的文件,使用下列命令:

# find /root | cpio -o >/tmp/root_backup_1215.cpio

cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:

# find *.tif | cpio -o >/tmp/back.cpio

记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:

# find / -name '*.tif' | cpio -o >/tmp/back_tif.cpio

同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:

# cpio -i <back_tif.cpio

和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。

cpio命令还有一个优点是可以直接将文件发送给外部源。

例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:

# find /root | cpio -o ->/dev/st0

# cpio -i </dev/st0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7156070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存