Linux操作命令(五)
find . -name ”*.c" -exec ./command.sh {} \;
本次实验将介绍 Linux 命令中 find 和 xargs 命令的用法。
- find
- xargs
1.find
find命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。Linux下find命令提供了相当多的查找条件。功能强大,对应学习难度也比较大!
【命令格式】:find [选项] [搜索路径] [表达式]
默认路径是当前目录,默认表达式是-print
表达式可能由下列组成:操作符、选项、测试表达式、动作等。
-print:find命令将匹配的文件输出到标准输出 -exec:对匹配的文件执行该参数所给出的shell指令 -name:按照文件名查找文件 -type:查找某一类型的文件 -prune:使用这一选项可以让find命令不再当前指定的目录中查找,如果同时用-depth选项,那么-prune将被find命令忽略 -user:按照文件属主来查找文件 -group:按照文件所属的组来查找文件 -mtime -n +n:按照文件的更改时间来查找文件 -n表示文件更改时间距现在小于n天,+n表示大于n天,find命令还有-atime和-ctime选项
find . -print
2.打印当前目录下所有以.txt结尾的文件名
find . -name "*.txt" -print
-iname 选项跟-name 选项作用一样,不同在于-iname 会忽略字母大小写。
3.打印当前目录下所有以.txt 或.pdf结尾的文件名
find . \(-name "*.pdf" -or -name "*.txt" \)
4.打印当前目录下所有不以.txt结尾的文件名
find . ! -name "*.txt"
find(二)
下面将介绍如何根据文件类型、权限、所有者及操作符来查找匹配文件。
根据文件类型来查找文件,使用-type 选项,常见 find 文件类型见下表。
根据文件权限查找文件,使用-perm 选项。所有者使用-user 选项。
另外,find 命令可以通过逻辑操作符来创建更复杂的逻辑关系,例如 find 命令(一)中的例三就使用了操作符-or。find 命令的逻辑操作符见下表。
【常用范例】:
1.打印当前目录下所有以.txt结尾的符号链接
find . -type l -name "*.txt" -print
2.打印当前目录下所有权限为777的php文件(web服务器的php文件一般需要执行权限)
find . -type f -name "*.php" -perm 777
3.打印当前目录下root用户拥有的所有文件
find . -type f -user root
4.打印当前目录下权限不是777和664的所有文件
find . -type \( ! -perm 777 -and ! -perm 644 \)
find(三)
-exec选项实现对查找到的文件执行指定的动作命令
【常见范例】:
1.找到当前目录下所有php文件,并显示详细信息
find . -name "*.php" -exec ls -l {} \;
-exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令,上面的命令就是 ls -l {}。在这里说明一下{}和;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。而;是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成;。
例二:在实验楼环境中有很多自己编写的 c 语言代码文件,现在想要把所有 c 语言代码文件下载下来,如果一个一个的下载很麻烦,我们可以先查找到所有的 c 语言代码文件,然后将这些文件内容写入到一个文件中,下载该文件,可以使用如下命令:
find . -name "*.c" -exec cat {} \; > all.c
例三:默认下,-exec 后面只能使用单个命令,如果想要多个命令,可以将多个命令写入脚本文件中,然后在-exec 中使用这个脚本,可以使用如下命令
find . -name "*.c" -exec ./command.sh {} \;
脚本内容:#! /bin/bash ls -l $1 # $1 表示第一个参数 cat $1
xargs 命令
我们可以用管道将一个命令的 stdout(标准输出)重定向到另一个命令的 stdin(标准输入)。但有些命令只能以命令行参数的形式接收数据,而无法通过 stdin 接收数据流。在这种情况下,无法通过管道将数据重定向给这些命令。
这时 xargs 就可以发挥它的作用了,xargs 命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表。
(1)命令格式
command | xargs [选项] [command]
xargs 命令应该紧跟在管道操作符之后,因为它以标准输入作为主要的源数据流。
(2)常用参数
参数 | 描述 |
---|---|
-n | 指定每行最大的参数数量 |
-d | 指定分隔符 |
(3)常用范例
例一:将多行输入转换为单行输出,可以使用如下命令:
cat a.txt | xargs
例二:将单行输入转换为多行输出,可以使用如下命令:
echo "1 2 3 4 5 6 7" | xargs -n 3
例三:将单行输入转换为多行输出,指定分隔符为 i,可以使用如下命令:
cat b.txt | xargs -d i -n 3
例四:查找当前目录下所有 c 代码文件,统计总行数,可以使用如下命令:
find . -type f -name "*.c" | xargs wc -l
转载于:https://www.cnblogs.com/Roni-i/p/10141009.html
Linux操作命令(五)相关推荐
- Linux操作命令分类详解 - 用户权限(三)
转自:Linux操作命令分类详解 - 用户权限(三),更优阅读体验:http://www.kongzid.com/ 目录 系列文章 1.用户账号管理 1.1 useradd/adduser 添加用户账 ...
- Linux操作命令(六):wc、grep
Linux命令实例练习 一.实验介绍 1.1 实验内容 1.2 实验知识点 1.3 实验环境 二.实验步骤 2.1 wc 命令 2.2 grep 命令 2.3 正则表达式与 grep 命令 三.参考 ...
- 《sed的流艺术之四》-linux命令五分钟系列之二十四
[正文开始] 上文接<sed的流艺术之三>-linux命令五分钟系列之二十三 例十 如果设定了很多-e的command,它们的执行顺序是怎样的呢? [rocrocket@rocrocket ...
- Linux(五):Ubuntu 16.04 更改系统语言为简体中文(Chinese simplified)
Linux(五):Ubuntu 16.04 更改系统语言为简体中文(Chinese simplified) 文章目录 1 问题 2 设置中文 2.1 设置: 2.2 点击 Install: 2.3 输 ...
- Linux的五个查找命令
原文地址http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html Linux的 ...
- 从零开始的linux 第五章
从零开始的linux 第五章 (咚咚咚...)路人甲:"小编!!快起床!!今天该讲课啦!" (迷迷糊糊且衣冠不整的小编去开门) 路人甲:"小...小编大人...你都让我这 ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- 《神探tcpdump第五招》-linux命令五分钟系列之三十九
== [系列文章] <神探tcpdump第一招>-linux命令五分钟系列之三十五 <神探tcpdump第二招>-linux命令五分钟系列之三十六 <神探tcpdump第 ...
- Linux操作命令(下)
Linux操作命令(八) 1)sort命令 sort命令能够帮助我们对文本文件和stdin进行排序操作 1.1. 命令格式 sort [选项] [文件名] 1.2. 常用参数 -n 基于字符串的长度来 ...
- 【黑马Python】linux操作命令(2)
linux操作命令 文件内容命令 cat和more的基本使用和对比 cat命令的-b和-n选项输出行号 grep查找文件内容 grep行首/行尾的模式查找 其他命令 echo和重定向 管道的概念和基本 ...
最新文章
- Python函数及其参数
- excel 运算符在php里不起作用,目标单元格引用无效是什么意思
- 凭兴趣求职80%会失败,为什么
- Laravel5.4重新登陆跳转到登陆前页面的原理和实现
- 求 1-100 之间不能被 3 整除的数之和
- react和react2_为什么React16是React开发人员的福气
- jQuery——入门(四)JQuery 事件
- 曾经辉煌无限,如今员工持续大量流失,集团目前仅剩10余人
- Nginx 下部署 HTTPS 与安全调优
- fiddler https
- 通过python读取ini配置文件
- idea 快捷键大全
- php录音功能,h5做出网页录音功能
- 《云边有个小卖部》的优秀读后感作文2100字
- 推土机(快排)荷兰国旗思路
- pve rust 能拆家吗_文明重启有哪些游戏模式应该怎么玩
- DataGrip使用(一)安装图文详细版(5月19更新)
- Ogre Giles
- 玩转ECS第6讲 | 弹性计算 Region 化部署和跨可用区容灾介绍
- 2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation