linux基础篇08-测试常见linux命令集合八

本篇主要接着上一篇文章继续就“测试常见linux命令集合八”进行展开讲解,主要包括“find”命令的各种用法。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

39:命令find
find [查找路径][options][查找条件] [处理动作]
find  path -option [-print ] [ -exec -ok command ]  {} \;
说明:在指定目录下查找文件
参数:
-type     根据文件类型查找(b/d/c/p/l/f 依次表示:块设备、目录、字符设备、管道、符号链接、普通文件)
-name     根据文件名称查找
-user     根据文件属主查找
-perm     根据文件权限查找
-print    将find找到的文件输出到标准输出
-size  n  根据文件的大小取查找(-n指小于大小为n的文件;+n指大于大小为n的文件)
-mtime n  根据文件更改时间查找(-n指n天以内修改的文件;+n指n天以前修改的文件)
-atime n  根据文件读取时间查找(-n指n天以内修改的文件;+n指n天以前修改的文件)
-ctime n  根据文件修改时间查找(-n指n天以内修改的文件;+n指n天以前修改的文件)
注意:
(1)查找路径:默认为当前目录
(2)查找条件:默认为查找指定路径下的所有文件
(3)处理动作:默认为显示,可以接-ls,相当于ll显示文件
文件名通配符:
“*”: 通配任意的字符,可以是任何东西。
”?”: 可表示任意单个字符
”[]”:表示通配括号里面的任意一个字符,注意[]里面的内容会被解析成单个字符

01:在当前目录及子目录下查找所有扩展名为“ini”的文件find ./ -name *.ini"

[anxin@VM_0_5_centos isTester]$ find ./ -name "*.ini"
./isTester.ini
./usr/isTester/isTester.ini
./sort.ini

02:在isTester目录及子目录下查找所有名字为isTester.ini的文件find ./isTester/ -name isTester.ini

[anxin@VM_0_5_centos ~]$ find ./isTester/ -name isTester.ini
./isTester/isTester.ini
./isTester/usr/isTester/isTester.ini
./isTester/etc/isTester.ini

03:在当前目录及子目录下查找所有大于50M的文件find ./ -size +50M

[anxin@VM_0_5_centos ~]$ find ./ -size +50M
./isTester/tomcat6755.hprof
./tomcat6755.hprof
./heap.bin

04:在isTester/usr目录下查找空文件和文件夹find ./isTester/usr/ -empty

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -empty
./isTester/usr/isTester/isTester
./isTester/usr/isTester/isTester.tar
./isTester/usr/isTester/idoxu/istester/2020

05:在isTester/usr目录下查找更改时间在2日以内的文件find ./isTester/usr/ -mtime -2

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -mtime -2
./isTester/usr/isTester/isTester1
./isTester/usr/isTester/isTester2
./isTester/usr/isTester/isTester3

06:在isTester/usr目录下查找更改时间在3日以前的文件find ./isTester/usr/ -mtime +3

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -mtime +3
./isTester/usr/
./isTester/usr/isTester
./isTester/usr/isTester/isTester

07:在isTester/usr目录下查找所有的目录find ./isTester/usr/ -type d

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type d
./isTester/usr/
./isTester/usr/isTester
./isTester/usr/isTester/isTester1
./isTester/usr/isTester/isTester2
./isTester/usr/isTester/isTester3

08:在isTester/usr目录下查找所有的文件find ./isTester/usr/ -type f

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type f
./isTester/usr/isTester/isTester.tar
./isTester/usr/isTester/isTester.ini
./isTester/usr/isTester/idoxu.tar

09:在isTester/usr目录下查找权限为777的文件和文件夹find ./isTester/usr/ -perm 777

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/  -perm 777
./isTester/usr/
./isTester/usr/ido.tar.bz2

10: 在isTester/usr目录下查找以大写字母开头的文件和文件夹find ./isTester/usr/ -name "[A-Z]*"

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/  -name "[A-Z]*" 
./isTester/usr/Test
./isTester/usr/TXT.tar
./isTester/usr/TXT.tar.gz

11:在当前目录中搜索文件内容带“isTester”的字符串find ./ -type f |xargs grep "isTester"

[anxin@VM_0_5_centos ~]$ find ./ -type f |xargs grep "isTester"
匹配到二进制文件 ./isTester/Test.tar
匹配到二进制文件 ./isTester/isTester.tar
./isTester/isTester.ini:isTester1
./isTester/isTester.ini:isTester2
./isTester/isTester.ini:isTester3

12:在isTester/usr目录下查找文件长度为0的普通文件并列出它们的完整路径find ./isTester/usr/ -type f -size 0|xargs ls -l

或:find ./isTester/usr/ -type f -size 0 -exec ls -l {} \;

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type f -size 0|xargs ls -l
-rw-rw-r-- 1 anxin anxin 0 3月  14 23:01 ./isTester/usr/1.png
-rwxrwxr-x 1 anxin anxin 0 3月  14 16:46 ./isTester/usr/1.txt
-rwxrwxr-x 1 anxin anxin 0 3月  14 16:47 ./isTester/usr/2.ini

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type f -size 0 -exec ls -l {} \;
-rw-rw-r-- 1 anxin anxin 0 3月  14 23:01 ./isTester/usr/1.png
-rwxrwxr-x 1 anxin anxin 0 3月  14 16:46 ./isTester/usr/1.txt
-rwxrwxr-x 1 anxin anxin 0 3月  14 16:47 ./isTester/usr/2.ini

13:在isTester/usr目录下查找.log文件且包含“error”的行find ./isTester/usr/ -type f -name "*.log" | xargs grep -r "error"

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type f -name "*.log" |xargs grep -r "error" 
./isTester/isTester.log:error
./isTester/isTester.log:error-申请核保失败

14:在当前目录下删除1天以内的所有东西find ./ -mtime -1 -print |xargs rm -rf

特别申明:如果当前目录内容发生任何变动,则代表本目录的.时间会发生变化。如果此时删除当前目录1天以内的所有东西则会提示“rm: 无法删除目录:"."”,因此想要避免此问题可以使用./*

./*:指除了本目录“.”以外的所有文件

[anxin@VM_0_5_centos etc]$ ls -al --full-time
总用量 12
drwxrwxr-x 3 anxin anxin 4096 2020-03-28 00:12:49.000000000 +0800 .
drwxrwxr-x 5 anxin anxin 4096 2020-03-28 00:03:44.000000000 +0800 ..
drwxrwxr-x 2 anxin anxin 4096 2020-03-15 10:40:11.000000000 +0800 idoxu
-rw-rw-r-- 1 anxin anxin    0 2020-03-24 23:24:26.000000000 +0800 isTester.ini
[anxin@VM_0_5_centos isTester]$ find ./* -mtime -1 -print | xargs rm -rf
[anxin@VM_0_5_centos isTester]$ ll
总用量 4
drwxrwxr-x 2 anxin anxin 4096 3月  20 13:26 isTester

15:在当前目录删除8天以前的所有东西(不含“.”)find ./* -mtime +8 -print |xargs rm -rf

[anxin@VM_0_5_centos WWW]$ find ./* -mtime +8 -print |xargs rm -rf
[anxin@VM_0_5_centos WWW]$ ll
总用量 0

16:在当前目录删除8天以前的所有东西(不含“.”)find ./* -mtime +8 -print -delete

[anxin@VM_0_5_centos WWW]$ find ./* -mtime -1 -print -delete
./1/2/3
./1/2
./1/1.txt
./1

17:删除文件大小为零的文件find ./ -size 0 | xargs rm -rf

[anxin@VM_0_5_centos Test]$ ll
总用量 0
-rw-rw-r-- 1 anxin anxin 0 3月  25 00:46 isTester1
-rw-rw-r-- 1 anxin anxin 0 3月  25 00:46 isTester2
-rw-rw-r-- 1 anxin anxin 0 3月  25 00:46 isTester3
[anxin@VM_0_5_centos Test]$ find ./* -size 0 | xargs rm -rf
[anxin@VM_0_5_centos Test]$ ll
总用量 0

18:-a、-o、-not(也就是与、或、非)

(1)-a:连接两个不同的条件(即两个条件必须同时为真)
(2)-o:连接两个不同的条件(两个条件只要满足一个即可)
(3)-not:对条件进行取反
例如:查找0-3k大小的文件
[anxin@VM_0_5_centos ~]$ find ./isTester/usr -size +0 -a -size -3k
./isTester/usr/isTester/isTester.ini
./isTester/usr/isTester/y.tar
./isTester/usr/isTester/isTester2020.tar.gz
./isTester/usr/ido.tar.bz2
./isTester/usr/test.tar.gz

19:在isTester/usr目录下查找更改时间在7日以前的文件并在删除之前询问它们find ./isTester/usr/ -type f -mtime +7 -ok rm {} \;

[anxin@VM_0_5_centos ~]$ find ./isTester/usr/ -type f -mtime -1 -ok rm {} \;
< rm ... ./isTester/usr/1 > ? y
< rm ... ./isTester/usr/2 > ? y
< rm ... ./isTester/usr/3 > ? y

20:在isTester/usr目录下查找大于10k的.conf文件将其复制到 isTester/conf 目录下find ./isTester/usr/ -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;

注意:

(1)-exec对搜索到的文件执行特定的操作。固定格式为:-exec 'commond' {} \;

(2)find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批并如此继续下去

(3)find ./* -mtime -1 -exec rm -rf {} \;先删除当前目录下的东西然后将结果查询出来

linux命令光看理论知识不行,得多动手敲且去练习。努力敲命令的你真好看~~~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容