HUGOMORE42

find

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 找出七天前的文件
find / -type f -mtime +7 -print
# / 表示从根目录中查找
# -type f 表示找出系统普通文件,不包含目录
# -mtime +n 表示寻找 n 天前的数据
# -print 打印文件名称
# 找出并删除七天前的文件
find /temp/ -type f -mtime +7 -print -exec rm -f {} \;
# -exec 表示后面执行系统命令
# {} 只有该符号能跟在命令你后面
# \; 结束符号
find /temp/ -type f -mtime +7 -print | xargs rm -f
# 使用管道和 xargs = -exec
# 查找 /var 下最大的十个文件
find /var -type f -ls | sort -k 7 -r -n | head
# 查找 /var/log 下大于 5GB 的文件
find /var/log/ -type f -size +5120M -exec ls -lh {} \;
# 找出今天所有文件并将它们拷贝到另一个目录
find /home/wdxtub/ -ctime 0 -print -exec cp {} /mnt/backup/{} \;

lsof

list open files, 一切皆文件。

  • 支持的文件类型包括:
  • 普通文件
  • 目录
  • 网络文件系统的文件
  • 字符或设备文件
  • (函数)共享库
  • 管道,命名管道
  • 符号链接
  • 网络文件(例如:NFS file、网络socket,unix域名socket)
  • 还有其它类型的文件,等等

常用参数:

  • <文件名> 列出哪些进程打开了指定文件: sudo lsof test.log
  • -c <进程名> 列出指定进程所打开的文件: sudo lsof -c tail
  • +d <目录> 列出目录下被打开的文件: sudo lsof +d .
  • +D <目录> 递归列出目录下被打开的文件
  • -i <条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip ): sudo lsof -i :80
  • -p <进程号> 列出指定进程号所打开的文件
  • -r <n> 每隔 n 秒重新执行一次

其它

  • time command 查看命令运行时间