Linux / UNIX:使用 find 命令查找和定位文件第 2 部分
在第一部分中我们讨论了find 命令的基本用法。
现在让我们看看如何使用 find 命令
(a)获取有关用户及其文件的大量有用信息
(b)使用 find 命令监控并增强系统安全性
查找所有设置用户 ID 的文件
setuid(“suid”)和 setgid 是可分配给 Unix 操作系统上的文件和目录的访问权限标志。它们主要用于允许计算机系统上的用户以临时提升的权限执行二进制可执行文件,以执行特定任务。
# find / -perm +u=s
或
# find / -perm +4000
另请参阅,shell 脚本用于查找所有设置了 setuid 的程序和脚本。
查找所有已设置组 ID 的文件
# find / -perm +g=s
或者
# find / -perm +2000
另请参阅,shell 脚本用于查找所有设置了 setgid 位的程序和脚本。
查找所有大型目录
查找所有占用 50k(千字节)空间块的目录。这对于找出系统中哪些目录占用大量空间很有用。
# find / -type d -size +50k
输出:
/var/lib/dpkg/info /var/log/ksymoops /usr/share/doc/HOWTO/en-html /usr/share/man/man3
在 Linux/UNIX 上查找所有大文件
# find / -type f -size +20000k
输出:
var/log/kern.log /sys/devices/pci0000:00/0000:00:02.0/resource0 /sys/devices/pci0000:00/0000:00:00.0/resource0 /opt/03Jun05/firefox-1.0.4-source.tar.bz2
然而我最喜欢的对上述命令的修改如下:
# find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
/var/log/kern.log: 22M /sys/devices/pci0000:00/0000:00:02.0/resource0: 128M /sys/devices/pci0000:00/0000:00:00.0/resource0: 256M /opt/03Jun05/firefox-1.0.4-source.tar.bz2: 32M
上述命令将查找所有块大小大于 20000k 的文件并打印文件名和文件大小。与普通 find 命令输出相比,输出更具信息量 ????