Linux 常用命令

----------------------

find

----------------------

$find / -name r.c 2>/dev/null  // 在根目录下查找名字为r.c的文件,并且不显示报错的文件.

$find   .    -name   "*.txt"   -print  #在当前目录查找*.txt, 并显示

$find   .   -name   "[a-z][a-z][0--9][0--9].txt"    -print   #查以两个小写字母和两个数字开头的txt文件
$find .   -perm   755   -print
$find   .   -size   +1000000c   -print        #查长度大于1Mb的文件
$find   /etc -name "passwd*"   -exec grep   "cnscn"   {}   /;   #看是否存在cnscn用户

 

find   /home   -empty                      查找大小为0的文件或空目录
find   /home   -size   +512k                查大于512k的文件
find   /home   -size   -512k                查小于512k的文件
find   /home   -links   +2                  查硬连接数大于2的文件或目录
find   /home   -perm   0700                 查权限为700的文件或目录

find   /tmp   -name wa* -type l            在/tmp下查找名为wa开头且类型为符号链接的文件
find   /home   -mtime   -2                  在/home下查最近两天内改动过的文件
find /home    -atime -1                   查1天之内被存取过的文件
find /home -mmin    +60                   在/home下查60分钟前改动过的文件
find /home   -amin   +30                   查最近30分钟前被存取过的文件
find /home   -newer   tmp.txt              在/home下查更新时间比tmp.txt近的文件或目录
find /home   -anewer   tmp.txt             在/home下查存取时间比tmp.txt近的文件或目录
find   /home   -used   -2                   列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find   /home   -user cnscn                 列出/home目录内属于用户cnscn的文件或目录
find   /home   -uid   +501                  列出/home目录内用户的识别码大于501的文件或目录
find   /home   -group   cnscn               列出/home内组为cnscn的文件或目录
find   /home   -gid 501                    列出/home内组id为501的文件或目录
find   /home   -nouser                     列出/home内不属于本地用户的文件或目录
find   /home   -nogroup                    列出/home内不属于本地组的文件或目录

 

--------------------------------------------------------------------------------

# find . -type f -exec ls -l {} /;
-rw-r--r--     1 root      root         34928 2003-02-25   ./conf/httpd.conf
-rw-r--r--     1 root      root         12959 2003-02-25   ./conf/magic
-rw-r--r--     1 root      root           180 2003-02-25   ./conf.d/README
查当前目录下的所有普通文件,并在- 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--     1 cnscn     cnscn        13709   1月 12 12:22 ./classDB.inc.php
[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    pts/0

=================================================
awk---grep---sed

[root@book class]# df   -k |   awk '{print $1}' |   grep   -v   'none' |   sed   s"///devg"
文件系统
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    -d':'   -f1| uniq > filename
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 ';'


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值