find命令怎么用,linux操作系统利用find 命令如何查找某个目录的位置
find命令怎么用,linux操作系统利用find 命令如何查找某个目录的位置详细介绍
本文目录一览: find命令怎么使用
在cmd窗口中敲下find /? 这条命令,然后重重地按下回车键。find /? 的执行结果很快,帮助信息全出来了。
find命令详解
find命令的基本格式是这样的:find "要查找的字符串" 要查找的文件,在这里,"要查找的字符串"这个内容是必不可少的,引号也是必须的。例如:find "bathome" d:\test.txt,表示在D盘根目录下的文本文件test.txt中查找含有 bathome 这一字符串的所有行。
如何掌握find命令用法
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理
3.命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
linux find命令怎么用
你可以在超级用户状态 # 下,使用 find 命令查找指定的文件,举例如下:
#find / -name "*.c" -print
其中:/ 代表从根目录开始进行查找;"*.c" 代表要进行查找的文件类型为 C 语言源程序(*.c),-print 选项代表将查找到的结果输出到屏幕上。
该命令是最、最、最实用的文件查找命令,别的就可以举一反三了。例如:你如果想从 /usr 目录开始进行查找,那么就将 / 更改成:/usr 即可。
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
语法格式:
find path -option [ -print ] [ -exec -ok command ] {} \;
参数说明:
find根据下列规则判断path和expression,在命令列上第一个-(),!之前的部分为path,之后的部分是expression。如果path是空字串则使用目前路径,如果expression是空字串则使用-print为预设expression。
expression中可使用的选项有二三十个,在此只介绍常用的部分。
-mount,-xedv:只检查和指定目录在同一个文件系统下的文件,避免列出其他文件系统中的文件;
-amin n:在过去n分钟内被读取过;
-anewer file:比文件file更晚被读取过的文件;
-atime n:在过去n天内被读取过的文件;
-cmin n:在过去n分钟内被修改过;
-cnewer file:比文件file更新的文件;
-ctime n:在过去n天内被修改过的文件;
-empty:空的文件-gid n or -group name:gid是n或是group名称是name;
-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写;
-name name,-iname name:文件名称符合name的文件,iname会忽略大小写;
-size n:文件大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组。
-type c:文件类型是C的文件。
linux操作系统利用find 命令如何查找某个目录的位置
1、linux命令如果记不得,可以使用man命令来查看某个命令的使用。但对应初学者往往看不懂或者不知道什么场景下使用
2、输入find -name *history,意思是查询当前目录及子目录下所有以history结尾的文件
3、输入find -name mysql*,意思是查询当前目录及子目录下所有以mysql开头的文件
4、输入find -name mysql* -o -name *history,中间加个-o表示或的意思,就是以mysql开头或history结尾的文件
5、上面是例子没有搜索目录,默认是当前目录下,可以加上目录位置来指定特地的目录下搜索
6、有时候经常会需要查询最近10分钟修改过的文件,则可以输入find -mmin -10命令来查询
7、最后介绍下,在系统磁盘不足的情况下,需要清理大的垃圾临时文件时,如搜索大于100M的文件,find -type f -size +100M -print0 | xargs -0 du -h,结果如图所示
扩展资料
Linux简介:
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
参考资料来源:百度百科:Linux简介
批处理文件中 find 命令的例子
find命令的基本格式是这样的:find "要查找的字符串" 要查找的文件,在这里,"要查找的字符串"这个内容是必不可少的,引号也是必须的。例如:find "bathome" d:\test.txt,表示在D盘根目录下的文本文件test.txt中查找含有 bathome 这一字符串的所有行。
find的结果将会有两种情况:
1、当文件中包含要查找的字符串时,将返回这个字符串所在位置的整行内容,具体格式为:第一行是"---------- ×××" (×××表示被查找的文件名,不包括引号对),第二行开始才出现包含字符串的整行内容;
2、当文件中没有出现要查找的字符串时,find的结果仅仅返回"---------- ×××" 这一行内容(×××表示被查找的文件名,不包括引号对)。
在查找指定字符串的时候,有的场合需要区分大小写,有的场合则对大小写并不在意,如何实现这些需求呢?
很简单,在find的时候,添加或取消/i开关就是了,具体用法为:find /i "Abc" test.txt 表示不区分大小写,文本内容中含有 Abc、abc、ABC之类的都算;find "Abc" test.txt则严格区分字符大小写,只能匹配Abc,而不能匹配abc、ABC之类的字符。
有时候,我们的需求并不是为了查找到某个字符串,而是要检测哪些行不含有特定的字符串,这个时候,可以使用开关/v,用法为:find /v "Abc" test.txt,它表示查找那些不含字符串Abc的行(Abc要区分大小写),如果不区分abc的大小写,那么,应该写成 find /i /v "Abc" test.txt。
有时候,我们的要求很简单,仅仅只是想统计包含某个字符串的行总共有多少,这个时候,应该使用开关/c,写成 find /c "abc" test.txt。
如果要在每行的行首显示行号,怎么办?那就写成 find /n "abc" test.txt 吧,它会把test.txt的内容都显示出来,与原文不一样的是,在每行内容的行首,都加上了行号——注意,它仅仅是在显示的时候加上行号而已,并没有真正改写文件的内容。
如果你看到这样的命令:find /i /v /n "Abc" test.txt,请一点要先沉住气,不要被众多的开关弄得眼花缭乱吓趴下了,仔细对照上面的解释,相信你很快就会理解它的功能:在test.txt文件中,查找不包含字符串Abc的所有行,并在行首标上这些行的行号,查找的时候,字符串Abc不区分大小写。
要是使用这样的语句:find /c /n "abc" test.txt,会出现什么样的结果呢?答案是:开关/n会被忽略掉,最终结果不会显示带行号的行内容,只会显示匹配的总行数而已。
echo abcdef|find "abc",见过这种写法吗?它的含义是:在字符串abcdef中,检测是否存在字符串abc,也就是说,find支持管道符号,把管道符号之前的语句的执行结果,作为指定字符串的查找对象,甚至,你可以使用这样的语句:find "abc" test.txt|find "xyz",它表示在test.txt中查找同时存在字符串abc和字符串xyz的行,只要你愿意,你可以继续用管道符号把这个find语句连接下去,我们把这个过程称为多重过滤。
在前面,我们说过,在 find "要查找的字符串" 要查找的文件 这条命令语句中,引号是必须的,要是我们要查找的内容就是双引号本身,那又该怎么办?
答案很简单:把双引号本身先用双引号转义,再放到双引号对中,写成 find """" test.txt 的格式,如果要查找两个连续的双引号,则应该写成 find """""" test.txt。
如果你想查找两行之间的字符块,我劝你趁早放弃这个疯狂的想法,因为,find仅仅针对位于同一行上的字符串,不能查找跨行的字符块。
与findstr命令相比,find的功能确实有限得多,仅仅因为不支持正则表达式这一点,就有不少人把它视为鸡肋,从而遭到无情的抛弃。
然而,find并非一无是处,凭借自己的独门绝技,在与findstr的竞争中,它挣得了一席之地。
这些独门绝技是什么呢?(感谢BatCoder的提醒和zqz0012005的补充)
1、统计含指定字符串的总行数。find /c "abc" test.txt可以统计test.txt中含有字符串abc的总行数,而findstr则没有直接提供该功能,需要配合for语句才能实现;
2、find可以读取Unicode格式的文本,而findstr则不行;
3、find可以过滤某些特殊字符,而findstr则不行,比如,我们在使用fsutil fsinfo drives语句查询磁盘分区的时候,如果想让盘符分行显示而不是显示在同一行上的时候(这在用for语句提取盘符的时候很有用),find可以大显身手,而findstr只能干瞪眼了,具体语句为: fsutil fsinfo drives|find /v ""
常用的:
type log.txt | find "2011-11-11" |find "Data" ,显示log.txt文件中既含有2011-11-11也含有Data的行。
find /V /C "" log.txt 统计文件log.txt的行数。
1、首先登录linux系统,输入用户和密码登录linux系统。
2、然后鼠标右键选择打开终端菜单,即可打开终端命令,
3、find命令用法说明。输入命令:find --help,可查看该命令的使用说明。
4、输入命令:find -name "*.txt",查找后辍名为.txt的文件。
5、最后输入命令:find Test2 -name "*.txt",在目录Test2下查找后辍名为.txt的文件。
命令提示符(DOS)下Find的用法
@echo off FOR /F "skip=2" %%i in ('find "D:\文件\" H:\1.txt') do ( set str=%%i ) set str1=%str:~6,100% ::echo %str1% set str=%str1% set ch1=. :next if not "%str%"=="" ( set /a num+=1 if "%str:~0,1%"=="%ch1%" goto last ::比较首字符是否为要求的字符,如果是则跳出循环 set "str=%str:~1%" set str2=%str2%%str:~0,1% goto next ) set /a num=0 :last echo %str2% pause
命令行输入 find /? 就会提示用法。
Find :在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
"string" 指定要搜索的文本字符串。
[drive:][path]filename 指定要搜索的文件。
如果没有指定路径,FIND 将搜索在提示符处键入的文本或者由另一命令产生的文本。
Linux下Find命令的使用
find是linux中查找的命令,其工作效率确实不能说是很高,但是需要经常使用,所以要掌握find的用法。find [directory] 寻找条件操作还有种表述方式:find PATH OPTION [-exec COMMAND { } \;##如果想得到的输出结果是绝对目录,那么查找的directory也要写绝对路径,如果写相对路径,输出的也是相对路径该命令中的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运算符 and、or、not 的含义为:
(1) and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:find –name ’tmp’ –xtype c -user ’inin’该命令寻找三个给定条件都满足的所有文件(2) or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:find –name ’tmp’ –o –name ’mina*’该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。(3) not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:find ! –name ’tmp’该命令查询文件名不是’tmp’的所有文件。需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“\”来去除括号的意义。例:find \(–name ’tmp’ –xtype c -user ’inin’ \)
下面我说一下find命令的option在option中,具体有参数:-name ’字串’查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。-lname ’字串’查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。-gid n 查找属于ID号为 n 的用户组的所有文件。-uid n 查找属于ID号为 n 的用户的所有文件。-group ’字串’查找属于用户组名为所给字串的所有的文件。-user ’字串’查找属于用户名为所给字串的所有的文件。-empty 查找大小为 0的目录或文件。-path ’字串’查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。-perm 权限查找具有指定权限的文件和目录,权限的表示可以如711,644。-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为 b,代表512字节的块。-type x 查找类型为 x 的文件,x 为下列字符之一:-maxdepyh n 只查找制定目录下的符合匹配的文件或目录b 块设备文件c 字符设备文件d 目录文件p 命名管道(FIFO)f 普通文件l 符号链接文件(symboliclinks)s socket文件-xtype x 与 -type 基本相同,但只查找符号链接文件。以时间为条件查找-amin n 查找n分钟以前被访问过的所有文件。-atime n 查找n天以前被访问过的所有文件。-cmin n 查找n分钟以前文件状态被修改过的所有文件。-ctime n 查找n天以前文件状态被修改过的所有文件。-mmin n 查找n分钟以前文件内容被修改过的所有文件。-mtime n 查找n天以前文件内容被修改过的所有文件。-print:将搜索结果输出到标准输出。例子:在root以及子目录查找不包括目录/root/bin的,greek用户的,文件类型为普通文件的,3天之前的名为test-find.c的文件,并将结构输出,find命令如下:find / -name "test-find.c" -typef -mtime +3 -user greek -prune /root/bin -print当然在这其中,-print是一个默认选项,我们不必刻意去配置它。我们再看一下exec选项:-exec:对搜索的结构指令指定的shell命令。注意格式要正确:"-exec命令 {} \;"在}和\之间一定要有空格才行;{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。例子:对上述例子搜索出来的文件进行删除操作,命令如下:find / -name "test-find.c" -typef -mtime +3 -user greek -prune /root/bin -exec rm {} \;find命令指令实例:find . - name ‘main*’ - exec more {} \;% 查找当前目录中所有以main开头的文件,并显示这些文件的内容。find . \(- name a.out - o - name‘*.o’\) - atime +7 - exec rm {} \;% 删除当前目录下所有一周之内没有被访问过的a.out或*.o文件。% 命令中的“.”表示当前目录,此时find 将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。% “\(”和“\)”表示括号(),其中的“\”称为转义符。之所以这样写是由于对Shell 而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。% “-name a.out”是指要查找名为a.out的文件;% “-name ‘*.o’”是指要查找所有名字以 .o 结尾的文件。这两个 -name 之间的 -o 表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件。find命令在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件 -atime +7),若是,则对该文件执行命令rm(-exec rm {} \;)。其中 {} 代表当前查到的符合条件的文件名,\;则是语法所要求的。上述命令中第一行的最后一个 \ 是续行符。当命令太长而在一行写不下时,可输入一个 \,之后系统将显示一个 ,指示用户继续输入命令。以上就是今天我学习find命令的全部内容,如果有不足的地方还请大家指出。
find命令怎么使用
本视频是由ThinkpadE15品牌、centos7系统、find4.6版本录制的。Linux中find的使用法? 操作系统:centos7 软件版本:find4.6 设备型号:ThinkPadE15 find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作。
find语法格式:find路径名称选项 find命令选项: -name 按照文件名查找文件。“名称” -perm 按照文件权限来查找文件。666777等 -user 按照文件属主来查找文件 -group 按照文件所属的组来查找文件 -mtime-n/+n 按照文件的更改时间来查找文件, -n 表示文件更改时间距现在n天以内 +n 表示文件更改时间距现在n天以前 -type 查找某一类型的文件 b-块设备文件 d-目录 c-字符设备文件 p-管道文件 l-符号链接文件 f-普通文件 -sizen查找符合指定的文件大小的文件 -exec 对匹配的文件执行该参数所给出的其他linux命令,相应命令的形式为'命令{}\;,注意{}和\;之间的空格,{}代表查到的内容 例1:查找当前目录下所有的TXT格式的文件 [root@xuegod63~]#toucha.txtxuegod.txt [root@xuegod63~]#find.-name"*.txt" 。。。 ./a.txt ./xuegod.txt 2、按照更改时间或访问时间等查找文件 如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项 mtime:文件最后一次修改的时间 atime:最后一次访问时间 ctime:文件的最后一次变化时间,也就是修改时间 例1:在root目录下查找更改时间在1天以内,被黑客修改的文件 [root@xuegod63~]#find/root/-mtime-1
对查找内容执行相应命令 -exec这个选项参数后面可以跟自定义的SHELL命令,格式如下: 例2:把查找到的文件复制到一个指定的目录 [root@xuegod63~]#touch{1,2,3}.back [root@xuegod63mnt]#find/root-name"*.txt"-execcp{}/opt\; 例3:查找多个类型文件 find命令中比较符的使用: -aand并且 -oor或者 +超过 -低于 [root@xuegod63~]#toucha.pdfback.sh [root@xuegod63~]#find./-name"*.sh"-o-name"*.pdf" [root@xuegod63~]#find/etc-size+20k-a-size-50k|wc-l 22 [root@xuegod63~]#find/etc-size+20k|wc-l 49 例4:按权限查找:-perm [root@xuegod63~]#find/bin/-perm755#等于0755权限的文件或目录 [root@xuegod63~]#find/bin/-perm-644#-perm-644至少有644权限的文件或目录 例5:查找的目录深度: -maxdepth1#只查找目录第一层的文件和目录 如:查找/bin目录下权限等于644的文件 [root@xuegod63~]#find/etc/-maxdepth1-perm644|more
总结:find命令使用方法和参数 find命令选项: -name 按照文件名查找文件。“名称” -perm 按照文件权限来查找文件。666777等 -user 按照文件属主来查找文件 -group 按照文件所属的组来查找文件 -mtime-n/+n 按照文件的更改时间来查找文件, -n 表示文件更改时间距现在n天以内 +n 表示文件更改时间距现在n天以前 -type 查找某一类型的文件 b-块设备文件 d-目录 c-字符设备文件 p-管道文件 l-符号链接文件 f-普通文件 -sizen查找符合指定的文件大小的文件 -exec 对匹配的文件执行该参数所给出的其他linux命令,相应命令的形式为'命令{}\;,注意{}和\;之间的空格,{}代表查到的内容
批处理中find的用法请指教
find 命令在文件中搜索指定的字符串或文字。Cmd.exe 显示与在命令提示符窗口中指定的字符串或文字相匹配的所有行。可以把 find 命令用作筛选器命令,也可以用作标准的 Windows XP 命令。有关如何将 find 用作标准命令的详细信息,请参阅 Find。
要将 find 命令用作筛选器命令,必须将小于号 (<) 和要搜索的字符串或文本包括在内。默认情况下,find 搜索将区分大小写。例如,下面的命令查找文件 Trade.txt 中所有的“Pacific Rim”字符串:
find "Pacific Rim" < trade.txt
输出不包括出现“pacific rim”的任何字符串。输出只包括所有首字母大写的“Pacific Rim”字符串。
要保存 find 命令的输出而不是在命令提示符窗口显示输出,请键入大于号 (>) 和要存储输出的文件的名称。例如,下面的命令查找文件 Trade.txt 中存在的“Pacific Rim”字符串,并将结果保存在 Nwtrade.txt 文件中:
find "Pacific Rim" < trade.txt > nwtrade.txt