这里教大家如何用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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)