当前位置: 首页 > news >正文

Linux - 文件管理高级1

0.管道 |

将前面命令的标准输出传递给管道作为后面的标准输入

1.文件查找 find

find 进行文件查找时,默认进行递归查找,会查找隐藏目录下的文件

1.1 用法

# find 查找路径 查找条件...

-type                     // 文件类型 f 普通文件  b 设备 d 目录 l 链接文件
-size                     // 文件大小  【+[大于] -[小于]】【KMG】
-group                  // 组名,属组
-user                    // 用户名,属主
-empty                 // 空文件或者目录
-mtime                 // 根据n天前修改内容的文件
-maxdepth           // 查找层级目录 -maxdepth 1  只查找当前目录下的内容
-perm                  // 根据权限查找

 1.2 单条件查找

 示例1

PS:用无限资源设备在/home下生成一个30m大小的文件test.file

        dd if=/dev/zero of=/home/test.file bs=1M count=30

<1> 找出/home下大于20m的文件

        find /home size +20M 

  1.3 查找后条件处理

 示例2

 查找后的处理
-ok            //进行交互式,会询问
-exec        //直接处理
# find 查找路径  查找条件  -exec  处理动作  {}  \;                {}代表前面查找的内容

                                                                                             \; 代表命令结束

 <2> 找出系统下属主是zhangsan,属组是HR的文件,并将其权限改为666

        find / -user zhangsan -group HR -exec chmod 666 {} \;

   1.4 多条件查找

and  ==> 与                 // find查找时添加多个条件 默认为and,两个条件需要同时满足

or     ==> 或                 // -o 只需要满足其中一个条件

!       ==> 非                 // 不满足这个后面的条件

  示例3

<3> 在/root目录下,找到用户权限为rw或者文件类型为普通文件的文件

        find /root -type f -o -perm u=rw

   示例4

<4> 在/etc下统计链接文件除外的其它文件

       # find /etc ! -type l | wc -l                // ! 取反


2.过滤 grep

2.1 用法

 # grep [选线] 关键字 文件                // 打印出匹配到关键字的行

2.2 关键字

示例5

<5>在/etc/passwd 文件中过滤以root开头的行

                                              以bash结尾的行

 2.3 选项

 示例6

<6> 统计系统内不能正常登录的用户有哪些

分析:正常登录用户在/etc/passwd文件中以/bin/bash结尾,反之剩下的就是不能正常登陆的,-v取反之后,并用-c统计对应数量。

grep -v -c "/bin/bash$" /etc/passwd

相关文章:

  • 2.4 Docker部署JDK
  • 【三维模型采集设备】轮廓扫描仪介绍
  • TensorFlow Playground神经网络演示工具使用方法详解
  • golang中一个优雅的开发和使用命令行工具的库 cobra
  • CraftCMS ConditionsController.php 代码执行漏洞(CVE-2023-41892)
  • 【算法训练 day44 分割等和子集】
  • Mysql 插入或者更新 踩坑
  • QT系列教程(6) 几种标准对话框
  • ReactNative集成到已有iOS项目
  • 大模型日报2024-05-31
  • C++:vector的模拟实现
  • Maven 中的 classifier 属性用过没?
  • chrome 浏览器历史版本下载
  • 从openstack环境中将服务器镜像导出的简单办法
  • 分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
  • 【译】JS基础算法脚本:字符串结尾
  • @jsonView过滤属性
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 10个确保微服务与容器安全的最佳实践
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • EventListener原理
  • go append函数以及写入
  • HTTP--网络协议分层,http历史(二)
  • Invalidate和postInvalidate的区别
  • iOS编译提示和导航提示
  • JAVA之继承和多态
  • JS题目及答案整理
  • mysql_config not found
  • Object.assign方法不能实现深复制
  • Python_OOP
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 数据仓库的几种建模方法
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微信开放平台全网发布【失败】的几点排查方法
  • 我与Jetbrains的这些年
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #控制台大学课堂点名问题_课堂随机点名
  • $.ajax()参数及用法
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (回溯) LeetCode 40. 组合总和II
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)SvelteKit教程:layout 文件
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)setTimeout 和 setInterval 的区别
  • (转载)虚函数剖析
  • (状压dp)uva 10817 Headmaster's Headache
  • ***测试-HTTP方法
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 读取 JSON格式的数据
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net小白的大学四年,内含面经