查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
如果需要更进一步的了解,可以参看Linux的命令详解。
这里摘抄如下:
·find path -option [ -print ] [ -exec -ok command ] {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {}
\;
#-ok 和-exec相同,只不过在操作前要询用户
====================================================
-name
filename
-perm
-user
-group
groupname
-mtime -n
+n
-atime
-perm
-user
-group
groupname
-mtime -n
+n
-atime
-ctime
-nogroup
-nouser
-newer f1
!f2
-ctime
-nogroup
-nouser
-newer f1
!f2
-type
-size
-depth
-fstype
-type
-size
-depth
-fstype
-mount
-follow
-cpio
-mount
-follow
-cpio
-prune
====================================================
$find ~ -name "*.txt"
-print
$find .
$find .
-prune
=====================================================
$find ~ -name "*.txt"
-print
$find .
$find .
$find /etc -name "host*" -print #查以host开头的文件
$find . -name
"[a-z][a-z][0--9][0--9].txt"
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm
777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print
$find . -size +1000000c
-print
$find . -size
100c
$find . -size +10
-print
$cd /
$find etc home apps
$find /etc -name "passwd*" -exec grep "cnscn" {} \;
#看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs
echo
$find . -name "yao*" | xargs chmod o-w
======================================================
find -name
april*
find -name april* fprint
file
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat
在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype
vfat
find /tmp -name wa* -type
l
find /home -mtime
-2
find /home
find /home -mmin
find /home -amin
+30
find /home -newer
tmp.txt
find /home -anewer
tmp.txt
find /home -used
-2
find /home -user
cnscn
find /home -uid
+501
find /home -group
cnscn
find /home -gid
501
find /home
-nouser
find /home
-nogroup
find /home
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home
-empty
find /home -size
+512k
find /home -size
-512k
find /home -links
+2
find /home -perm
0700
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
find
find
find
find
find
find
find
find
查当前目录下的所有普通文件
--------------------------------------------------------------------------------
# find . -type f -exec ls -l {} \;
-rw-r--r--
-rw-r--r--
-rw-r--r--
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出
=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} \;
=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} \;
=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {}
\;
< ls ... ./classDB.inc.php > ? y
-rw-r--r--
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {}
\;
< ls ... ./classDB.inc.php > ? n
[root@book class]#
=================================================
查询并交给awk去处理
[root@book class]# who | awk '{print $1"\t"$2}'
cnscn
=================================================
awk---grep---sed
[root@book class]# df -k | awk '{print $1}' | grep -v 'none' | sed
s"/\/dev\///g"
文件系统
sda2
sda1
[root@book class]# df -k | awk '{print $1}' | grep -v 'none'
文件系统
/dev/sda2
/dev/sda1
1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h |
cut
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \;
-print
2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;
3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;
4)将find出来的东西拷到另一个地方
find *.c -exec cp '{}' /tmp ';'
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null |
grep "2004-11-30 16:36:37"