*** 作系统: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 [paths] [expression] [actions]
find 命令接受一个或多个 路径 ( paths )作为搜索范围,并在该路径下 递归 地搜索。即检索完指定的目录后,还会对该目录下的子目录进行检索,以及子目录下的子目录。。。直到到达目录树底部。
默认情况下(不带任何搜索条件),find 命令会返回指定目录下的 所有文件 ,所以常常需要通过特定的 expression 对结果进行 筛选 。
find 命令默认的 action 是将所有检索结果打印至标准输出。可以通过自定义 action ,让 find 命令对搜索到的结果执行特定的 *** 作。
这里先不做详细解释,简单地测试下 find 命令:
find 命令中的 -name 选项可以根据文件名称进行检索( 区分大小写 )。如需要忽略文件名中的大小写,可以使用 -iname 选项。
-name 和 -iname 两个选项都支持 wildcards 。如:
find /usr -name '*.txt' 查找 /usr 目录下所有文件名以 .txt 结尾的文件
find /usr -name '????' 查找 /usr 目录下所有文件名刚好为 4 个字符的文件
有些时候,你需要在搜索时匹配某个文件或目录的 完整路径 ,而不仅仅是匹配文件名。可以使用 -path 或 -ipath 选项。
如查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src 。可以使用以下命令:
find /usr -path '*/src/*.txt'
如果只想搜索得到文件 或 目录,即不想它们同时出现在结果中。可以使用 -type 选项指定文件类型。
-type 选项最常用的参数如下:
find /usr -type d -name 'python*' 检索 /usr 下所有文件名以 python 开头的 目录
find 命令支持 -empty 选项用来检索 为空 的文件或目录。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录。
find ~ -type d -empty 检索用户主目录下所有的空目录
find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 *** 作)。
如需要检索 /usr 下所有文件名 不 以 .txt 为后缀的文件。可以使用以下命令:
find /usr -type f ! -name '*.txt'
也可以“翻转”任何其他的筛选条件,如:
find /usr -type f ! -empty 检索 /usr 下所有内容不为空的文件
为了检索归属于特定用户的文件或目录,可以使用 -user 选项。
find / -type f -user starky 检索根目录下所有属主为 starky 的文件
类似于 -user 选项, -group 选项则可以根据文件或目录的 属组 进行检索。
有些时候,需要根据文件创建或修改的时间进行检索。
Linux 系统中,与文件相关联的时间参数有以下三种:
与此对应的是 find 命令中的 -mtime , -atime 和 -ctime 三个选项。
这三个选项的使用遵循以下示例中的规则:
find /usr -type f -mtime 2 检索 /usr 下两天前被修改过的文件
如果觉得 -mtime 等选项以 天 为单位时间有点长,还可以使用 -mmin , -amin , -cmin 三个选项:
find /usr -type f -mtime +50 -mtime -100 检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件
-size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。
表示文件大小的单位由以下字符组成:
另外,还可以使用 + 或 - 符号表示 大于 或 小于 当前条件。
find / -size +1G 检索文件大小高于 1 GB 的文件
find 命令可以使用 -perm 选项以文件权限为依据进行搜索。
如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx
搜索 /usr 目录下所有权限为 r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:
find /usr -perm a=rx
很多时候,我们只想匹配文件权限的一个 子集 。比如,检索可以直接被任何用户执行的文件,即只关心文件的执行权限,而不用管其读写权限是什么。
上述的需求可以通过以下命令实现: find / -type f -perm /a=x
其中 a=x 前面的 / 符号即用来表示只匹配权限的某个子集(执行权限),而不用关心其他权限的具体设置。
-perm 选项也支持数字形式的文件权限标记。
find /usr -perm 644 搜索 /usr 目录下权限为 644 (即 rwxr-xr-x )的文件
find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。
find / -maxdepth 3 搜索时向下递归的层数最大为 3
在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转 。
实际上 find 命令支持 “and” 和 “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 。通过这两个选项可以对搜索条件进行更复杂的组合。
此外还可以使用 小括号 对搜索条件进行 分组 。注意 find 命令中的小括号常需要用 单引号 包裹起来。因小括号在 Shell 中有特殊的含义。
如检索 /usr 下文件名以 python 开头且类型为目录的文件
find /usr -type d -name 'python*'
该命令等同于:
find /usr -type d -a -name 'python*'
更复杂的组合形式如:
find / '(' -mmin -5 -o -mtime +50 ')' -a -type f
-delete 选项可以用来删除搜索到的文件和目录。
如删除 home 目录下所有的空目录:
find ~ -type d -empty -delete
-exec 选项可以对搜索到的结果执行特定的命令。
如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ''
其中的 大括号 ( {} )作为检索到的文件的 占位符 ,而分号( )作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。
每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {} ,然后执行 -exec 后面的命令一次。
另一个很重要的用法是,在多个文件中检索某个指定的字符串。
如在用户主目录下的所有文件中检索字符串 hello ,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ''
创建 Gzip 格式的压缩文件的命令为: tar -czvf filename.tar.gz <list of files>
现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中,直观的感觉是,其命令应为如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ''
实际情况是,这样得到的 music.tar.gz 其实只包含一个 MP3 文件。
原因是 find 命令 每次 发现一个音频文件,都会再执行一次 -exec 选项后面的压缩命令。导致先前生成的压缩包被覆盖。
可以先让 find 命令检索出所有符合条件的音频文件,再将得到的 文件列表 传递给后面的压缩命令。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +
如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用 -ls 选项。
find / -type file -size +1G -ls 浏览所有 1G 以上大小的文件的详细信息
A Guide to the Linux “Find” Command
find 命令手册 : man find
三方应用在“文件管理”APP文件存储路径:1、打开“文件管理”APP。
(1)图片、视频、音频、文档、安装包、压缩包有单独的入口,可进入查看有无对应文件。(图中第1部分)
(2)目前微信、QQ有专门的入口,可点击进入查看。(图中第2部分)
(3)若都无显示,可点击进入设备存储(手机存储)查看。(图中第3部分)
2、注意事项:
手机升级ColorOS 11版本后应用下载文件无法显示,是因为Android 11系统对第三方应用的隐私数据加强保护,所以会隐藏已保存数据,data目录下不显示。为了更好体验,您可通过谷歌原生应用(文件应用)进行查看。
(1)您可以进入「“文件管理”APP > 设备存储(手机存储) >Android >data」目录下无显示,但可通过页面“点击查看”进一步查看(图中第4部分),需要重新进入Android/data目录(图中第5部分),点击右上角可更换显示方式,能够看到文件完整的名称(图中第6部分)。
(2)若“文件管理”版本为8.2.100及以上版本,您可以进入「文件管理 >Android >data >点击查看」再选择「Android >data」,找到对应文件夹查看。若无“点击查看”选项(8.2.100前版本的文件管理应用)可进入进入手机自带的软件商店,搜索“文件管理”更新到最新版。
部分三方应用的文件存储路径如下(仅供参考哦~):
序号 应用名称 存储路径
1 微信 照片和视频:「“文件管理”APP >设备存储(手机存储) >Pictures >Weixin」。
文档:「“文件管理”APP >设备存储(手机存储) >Android >data >com.tencent.(mm) >(MicroMsg) >(Download)」。
2 QQ 照片、视频(手动下载时):「“文件管理”APP >设备存储(手机存储) >Tencent >QQ_lmages」和「“文件管理”APP >设备存储(手机存储) >Pictures >QQ」。
文档、视频(非手动下载时):「“文件管理”APP >设备存储(手机存储) >Android >data >com.tencent.mobileqq >Tencent >QQfile_recv」。
3 QQ浏览器 「“文件管理”APP >设备存储(手机存储) >QQBrowser」。
4 迅雷 「“文件管理”APP >设备存储(手机存储) >Android >data >com.xunlei.downloadprovider >files >ThunderDownload」。
5 腾讯视频 「“文件管理”APP >设备存储(手机存储) >Android >data >com.tencent.qqlive >files >video_xxx」。(腾讯视频做过相关处理,无法直接播放。)
6 爱奇艺视频 「“文件管理”APP >设备存储(手机存储) >Android >data >com.qiyi.video >files >app >download >video >qsv后缀(MB/GB为单位的文件)」。(爱奇艺做过相关处理,无法直接播放。)
7 抖音 已下载视频保存在相册:「“文件管理”APP >设备存储(手机存储) >DCIM >Camera」。
8 快手 已下载视频保存在相册:「“文件管理”APP >设备存储(手机存储) >DCIM >Camera」。
9 淘宝 保存的图片:「“文件管理”APP >设备存储(手机存储) >Pictures >taobao」。
10 唱吧 「“文件管理”APP >设备存储(手机存储) >.ktv >song」或「“文件管理”APP >设备存储(手机存储) >.ktv >record」。
11 全民K歌 「“文件管理”APP >设备存储(手机存储) >Android >data >com.tencent.karaoke >files >localsong」。
12 喜马拉雅 进入「“喜马拉雅”APP >右下角我的 >右上角设置 >下载和缓存设置 >下载位置」。
默认:「“文件管理”APP >设备存储(手机存储) >Android >data >com.ximalaya.ting.android >files >download」。
13 懒人听书 进入「“懒人畅听”APP >右下角账号 >左上角设置 >下载设置 >下载目录设置」。
默认:「“文件管理”APP >设备存储(手机存储) >tingshu」。
14 今日头条 进入:「“文件管理”APP >设备存储(手机存储) >Android >data >com.ss.android.article.news >files >ttvideo」。
温馨提示:
① 若您提及应用不在以上范围,可自行搜索存储路径。
② 若您手动点击保存文件,该文件会存储在系统目录下(比如使用微信、QQ时,手动保存图片或视频,会存储在/Pictures目录下);其他类似缓存或三方应用自发行为,文件会存储在/Android/data目录下。
③ 因手机安全机制,自带的“短信”信息不会存储在文件管理里面,您无法查看和导出;“电话本”联系人可以导出,具体查看“导入导出联系人”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)