首页 > 其他分享 >查看子文件夹中的文件个数及find命令解析

查看子文件夹中的文件个数及find命令解析

时间:2023-09-13 13:45:37浏览次数:44  
标签:文件 个数 修改 文件夹 file test txt find

查看子文件夹中的文件个数

find /home/test -type f -printf '%h\n' | sort | uniq -c

/home/test 要查找的目录
-type 按文件类型查找
f:指普通文件  d:目录文件
-printf 打印输出
%h 文件目录
\n 新行

sort 排序
uniq -c 去重并统计次数

测试

创建文件

当前目录 /home/test, 创建3个子文件夹a,b,c, a中有1个文件,b中有2个文件,c中有3个文件

[root@localhost test]# mkdir a b c
[root@localhost test]# touch a/a1.txt b/b1.txt b/b2.txt c/c1.txt c/c2.txt c/c3.txt
[root@localhost test]# tree -a
.
├── a
│   └── a1.txt
├── b
│   ├── b1.txt
│   └── b2.txt
└── c
    ├── c1.txt
    ├── c2.txt
    └── c3.txt

测试结果

[root@localhost test]# find /home/test -type f -printf '%h\n' | sort | uniq -c
      1 /home/test/a
      2 /home/test/b
      3 /home/test/c

find命令解析

命令格式

find [path...] [OPTIONS] [TESTS] [ACTIONS]
其中:
`path...` : 要查找路径, 可以有多个

选项 OPTIONS

-maxdepth levels: 子目录最大深度不超过levels
-mindepth levels: 子目录最小深度不低于levels
-version--version: 打印版本号

测试 TESTS

下面的数字参数n 可以这样给出
+n 比n大
-n 比n小
n 正好是n
-amin n:对文件的最近一次访问(比如 cat file)是在 n 分钟 (+n 就是n分钟之前, -n 就是n分钟以内)
-anewer file: 对文件的最近一次访问比 file 修改时间要晚
-atime n: 对文件的最近一次访问是在 n*24 小时之前

-cmin n: 对文件状态的最近一次修改是在 n 分钟之前
-cnewer file: 对文件状态的最近一次修改比 file 修改时间要晚
-ctime n: 对文件状态的最近一次修改是在 n*24 小时之前

-mmin n: 对文件数据的最近一次修改是在 n 分钟之前
-mtime n: 对文件数据的最近一次修改是在 n*24 小时之前
-newer file: 对文件的最近一次修改比 file 修改时间要晚

-name pattern: 基本的文件名(将路径去掉了前面的目录)与shell模式pattern相匹配
-empty: 文件是空的普通文件或者空目录

-type c: 文件是 c 类型的, 可取的值有:
b: 特殊块文件(缓冲的)
c: 特殊字符文件(不缓冲)
d: 目录
p: 命名管道(FIFO)
f: 普通文件
l: 符号链接
s: 套接字

动作 ACTIONS

-exec command: 执行 command
-fls file: 类似 -ls 但是像 -fprint 那样写入 file
-fprint file: 将文件全名打印到文件 file 中
-fprint0 file: 类似 -print0 但是像 -fprint 那样写入 file
-fprintf file format: 类似 -printf 但是像 -fprint 那样写入 file

-print: 打印文件全名,然后是一个换行符, 如果没有动作则默认-print
-print0: 打印文件全名,然后是一个null字符
-printf format: 按照 format 的格式打印,注意-printf不会在字符串末端添加一个新行,如果需要换行的话,在后面加上\n,常用占位符有:

  -n: 新行  
  -r: 回车  
  \t: 水平tab  
  \v: 竖直tab  
  \\: 输出自身'\'  
  %%: 输出自身'%'  
  %a: 文件最后一次存取的时间

  %Ak: 文件最后一次存取的时间,格式以 `k` 指定, `k` 的部分格式如下,全部格式见文末参考连接  
    H: 小时 (00..23)  
    M: 分钟 (00..59)  
    S: 秒 (00..61)  
    T: 24小时格式的时间 (hh:mm:ss)  
    Y: 年份 (1970...)  
    m: 月份 (01..12)  
    d: 一个月当中的日子 (01..31)  
  
  %c: 文件状态最后一次修改的时间
  %Ck: 文件状态最后一次修改的时间。格式以 k 指定,类似于%A
  %f: 去掉了前面的目录的文件名
  %g: 文件的组名
  %h: 文件名的前面的目录部分

  %k: 文件大小,以1kB 的块为单位
  %s: 文件大小,以字节为单位
  
  %p: 文件名
  %P: 文件名,去掉了据以找到了文件的命令行参数的名称部分
  %t: 文件最后一次修改的时间
  %Tk: 文件最后一次修改的时间。格式以 k 指定,类似于%A
  %u: 文件的用户名

参考

linux命令man find
man find

find命令man中文手册
https://manpages.debian.org/unstable/manpages-zh/find.1.zh_CN.html

标签:文件,个数,修改,文件夹,file,test,txt,find
From: https://www.cnblogs.com/qode/p/17699418.html

相关文章

  • 如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考
    大家好,我是来自BOSS直聘的赵俊南,主要负责安全方面的图存储相关工作。作为一个从v1.x用到v3.x版本的忠实用户,在见证NebulaGraph发展的同时,也和它一起成长。BOSS直聘和NebulaGraph关于NebulaGraph在BOSS直聘的应用场景,大家可以看看之前文洲老师的文章(图数据库NebulaGr......
  • Linux之查找过滤(tail、grep、find)
    参考:https://www.cnblogs.com/caoweixiong/p/15218826.htmltail基本格式tail[-f][-cNumber|-nNumber|-mNumber|-bNumber|-kNumber][File]参数解释-f该参数用于监视File文件增长。-cNumber从Number字节位置读取指定文件-nNumber从Number行......
  • 【PHP】读取本地文件夹中所有图片并显示
    <?//获取文件夹下的所有文件$dir_str='';$imgType=array('gif','png','jpg','jpeg','bmp');$handle=opendir("./".$dir_str);//指定目录while(false!==($file=readdir($handle))){//遍历改文件所......
  • Python 压缩文件夹
    Python压缩文件夹生成测试文件夹可以先使用该脚本生成测试文件夹,也可以直接用自己的文件夹importosimportshutildefmain():shutil.rmtree('AAA')os.makedirs("AAA")os.makedirs("AAA/BBB")os.makedirs("AAA/BBB/EEE")os.makedirs("......
  • Java比较两个数组内容是否相同
    数组内容相同   需求:设计一个方法,用于比较两个数组内容是否相同   思路:1.定义两个数组,分别使用静态初始化完成数组元素的初始化   定义一个方法,用于比较两个数组的内容是否相同   返回值类型:boolean   参数:int[]arr,int[]arr2   比较两个数组的内容是否相......
  • postgis如何判断要素的类型&判断要素的个数
    st_geometrytypeST_NumGeometries而ST_GeometryN是?参考:https://qastack.cn/gis/28835/changing-geometry-type-from-point-to-multipoint-within-existing-table-in-postgis......
  • python中字符串内置函数find和index
     001、find>>>str1="xyabmnabkj"##测试字符串>>>foriinenumerate(str1):...print(i)##列出每个字符的索引...(0,'x')(1,'y')(2,'a')(3,'b')(4,'m'......
  • VBA批量创建文件夹
    SubcreateFolder()DimwksAsWorksheetOnErrorResumeNextSetwks=ThisWorkbook.Worksheets(1)basepath=ThisWorkbook.Path&"\"Max=wks.Range("A100000").End(xlUp).RowFori=2ToM......
  • # yyds干货盘点 # Python判断多个文件夹的文件夹名是否包含“分公司”或“营销中心”
    大家好,我是皮皮。一、前言前几天在Python最强王者群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。大佬们请问下 判断多个文件夹的文件夹名是否包含“分公司”或“营销中心” 有没有什么简便的办法可以实现呀?二、实现过程这里【东哥】给了两个示例代码,实现......
  • Python判断多个文件夹的文件夹名是否包含“分公司”或“营销中心”怎么处理?(方法二)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。大佬们请问下 判断多个文件夹的文件夹名是否包含“分公司”或“营销中心” 有没有什么简便的办法可以实现呀?二、实现过程这里【东哥】给了两个示例代......