Unix在目录和子目录中查找文件命令
时间:2020-01-09 10:45:50 来源:igfitidea点击:
如何我在基于Unix的系统上丢失了(或者忘记了文件位置)名为toms-first-birthday.mp4的文件。
是否有Unix bash shell命令在目录和子目录中找到名为toms-first-birthday.mp4的文件?
您需要在Linux或者类Unix系统上使用find命令在目录中搜索文件。
语法
语法是
find /search/directory/ -name "matching file search criteria" -actions find /dir/to/search -name "pattern" -print find /dir/to/search -name "file-to-search" -print find /dir/to/search -name "file-to-search" -print [-action]
find命令将开始在/dir/to/search /中查找并继续搜索所有可访问的子目录。
文件名通常由-name选项指定。
您也可以使用其他匹配条件:
- -name文件名搜索给定的文件名。您可以使用* .c之类的模式
- -iname文件名与-name类似,但是不区分大小写。例如,模式fo*和F。匹配文件名
Foo
,FOO
,foo
,fOo
等。模式* foo *
也将匹配名为.foobar的文件。 -user userName
文件所有者是userName- -group groupName文件组所有者是groupName
- -type N按文件类型搜索。 N可以是以下任意一个:
- b:块(缓冲)特殊
c
:字符(无缓冲)特殊- d:目录
- p:命名管道(FIFO)
- f:常规文件
- l:符号链接;如果-L选项或者-follow选项有效,则永远不会如此,除非符号链接断开。如果要在-L生效时搜索符号链接,请使用-xtype。
- s:插座
D
:门(Solaris Unix)
默认条件是在符合条件时显示文件名。
找到文件时,可以指定以下操作:
- -print:显示匹配文件的路径名。
-exec cmd {} +
:在文件上运行命令cmd。-ls
:在屏幕上以ls -dils
格式列出当前文件。-delete
:删除文件。
Unix find命令示例
要在HONE目录中查找并报告toms-first-birthday.mp4文件,请执行:
$ find $HOME -name "toms-first-birthday.mp4" -print
要查找和报告从/home/Hyman /目录开始的所有mp4文件,请执行:
$ find /home/Hyman/ -name "*.mp4" -print
要查找和报告从/home/Hyman /和/tmp /目录开始的所有mp4文件,请执行:
$ find /home/Hyman/ /tmp/ -name "*.mp4" -print
有关更多信息,请参见Unix find命令手册页:
$ man find
关于Linux/Unix上的locate命令的说明
要使用名称查找文件,请使用locate命令:
locate file-name locate pattern locate [option] pattern locate toms-first-birthday.mp4 | more locate -b '\toms-first-birthday.mp4' locate *.sh | more