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