find命令相关技巧
限定一个文件系统中查找文件
find 命令增加 -xdev
参数即可限定只查找一个文件系统:
find ./ -xdev
du 命令统计大小限定一个文件系统
du 命令统计目录大小时默认会累积目录下所有文件,即使是挂载上的其它文件系统也会被计算进来,增加 -x
也就是 --one-file-system
参数就可以进行限定:
du -xsh xxx/
查找指向某个文件的所有符号链接
-L
参数指定查找的目录:
~# find -L /dev/disk/by-id -samefile /dev/sdb
find 命令清除文件 SELinux 信息
Linux 系统开启 SELinux 之后文件中可能通过 xattr 保存 SELinux 的 security context 信息,可以通过 ls -l
命令查看确认:
[root@localhost ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1867 7月 5 2011 anaconda-ks.cfg
上面的权限输出中最后一个 '.' 就表示文件带有 SELinux 安全上下文信息,可以使用 setfattr
命令清除。
当然也可以结合 find
和 setfattr
命令自动查找清除某个目录下所有文件的 SELinux 信息:
find ./ -printf "%P\t%Z\n" 2>/dev/null | awk -F "\t" '{if (NF>1 && length($2) > 0) {print $1;}}' | xargs setfattr -x security.selinux
查找空目录并删除
~# find ./ -type d -empty -delete