作业题目

1.找出/oldboy下面以.log结尾,修改时间是7天之前,大小大于1MB的文件并删除。

方法有两种

[root@junnan1 ~]# find /oldboy -mtime +7 -size +1M -name "*.log" -exec rm -f {} \;
[root@junnan1 ~]# rm -f `find /oldboy -mtime +7 -size +1M -name "*.log"`

2.找出/etc下面以.conf结尾的文件打包压缩到/backup/conf.tar.gz下面(/backup自己创建)

  • 方法一:是错误的
[root@junnan1 ~]# mkdir /backup
[root@junnan1 ~]# find /etc -name "*.conf" -exec tar zcf /backup/conf.tar.gz  {} \;
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
tar: 从成员名中删除开头的“/”
.........省略
[root@junnan1 ~]# ls /backup/
conf.tar.gz
[root@junnan1 ~]#

正确是这样的

[root@junnan1 ~/test]# ls
10.conf  1.conf  2.conf  3.conf  4.conf  5.conf  6.conf  7.conf  8.conf  9.conf
[root@junnan1 ~/test]# find ~/test -type f -name '*.conf' -exec tar zcf /backup/tar.conf.gz {} +
tar: Removing leading `/' from member names
[root@junnan1 ~/test]# tar tf /backup/tar.conf.gz 
root/test/1.conf
root/test/2.conf
root/test/3.conf
root/test/4.conf
root/test/5.conf
root/test/6.conf
root/test/7.conf
root/test/8.conf
root/test/9.conf
root/test/10.conf
[root@junnan1 ~/test]# 

注释:命名后面加一个+,作用是,把find命令执行的结果一次性放入花括号当中,然后再执行压缩。
如果换成撬棍分号的话,find查到一个,就立马压缩,再查到一个会覆盖第一个压缩文件的内容,这样,最后只会压缩最后一个以.conf未结尾的文件。

  • 方法二:
[root@junnan1 ~]# tar zcf /backup/conf.tar.gz `find /etc -name "*.conf"`
tar: 从成员名中删除开头的“/”
[root@junnan1 ~]# ls /backup/
conf.tar.gz
[root@junnan1 ~]# 
  • 方法三
[root@junnan1 ~/test]# find ~/test -type f -name '*.conf'|xargs tar zcf /backup/tar.conf.gz 
tar: Removing leading `/' from member names
[root@junnan1 ~/test]# tar tf /backup/tar.conf.gz 
root/test/1.conf
root/test/2.conf
root/test/3.conf
root/test/4.conf
root/test/5.conf
root/test/6.conf
root/test/7.conf
root/test/8.conf
root/test/9.conf
root/test/10.conf
[root@junnan1 ~/test]# 

3.找出/oldboy下面以.txt结尾的文件复制到/tmp下面

  • 方法一
[root@junnan1 ~]# find /oldboy -name "*.txt" -exec cp {} /tmp \;
[root@junnan1 ~]# ls /tmp
1                      oldboy01.txt  oldboy04.txt  vmware-root_6053-1723079767
2                      oldboy02.txt  oldboy05.txt  vmware-root_6098-994161094
date2019-04-15.tar.gz  oldboy03.txt  tar.txt
[root@junnan1 ~]#
  • 方法二
[root@junnan1 ~]# cp `find /oldboy -name "*.txt"` /tmp
[root@junnan1 ~]# ls /tmp
oldboy01.txt  oldboy02.txt  oldboy03.txt  oldboy04.txt  oldboy05.txt
[root@junnan1 ~]#

4.

[root@junnan1 ~]# find /etc -type f -name '*.conf' |xargs -i cp -a {} /tmp
[root@junnan1 ~]# tar zcf /backup/$(date +%F).tar.gz /etc
  • 检查
[root@junnan1 ~]# ls /tmp/
00-keyboard.conf                            mke2fs.conf
20-nproc.conf                               namespace.conf
25-no-bitmap-fedora.conf                    NetworkManager.conf
abrt-action-save-package-data.conf          nm-dispatcher.conf
abrt.conf                                   nm-ifcfg-rh.conf
abrt_event.conf                             nss-softokn-prelink.conf
access.conf                                 nsswitch.conf
af_unix.conf                                oops.conf
asound.conf                                 org.freedesktop.hostname1.conf
a.txt                                       org.freedesktop.import1.conf
audispd.conf    
[root@junnan1 ~]# ls /backup/
2019-04-19.tar.gz  conf.tar.gz  tar.conf.gz

你可能感兴趣的:(作业题目)