Record some Linux commands (4)

  1. find
    find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。
    通过名字查找 -name
    通过类型查找 -type
    在这里插入图片描述
    通过权限查找 -perm
    用户 -user

    a) 打印当前目录下的文件目录列表:find . -print
    b) 打印当前目录下所有以.txt 结尾的文件名 :find . -name "*.txt" -print
    c)打印当前目录下所有以.txt 或.pdf 结尾的文件名:find . \( -name "*.pdf" -or -name "*.txt" \)
    d) 打印当前目录下所有不以.txt 结尾的文件名:find . ! -name "*.txt"

    e) 找到当前目录下所有 php 文件,并显示其详细信息,可以使用如下命令:find . -name "*.php" -exec ls -l {} \;
    -exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令,上面的命令就是 ls -l {}。在这里说明一下{}和;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。而;是-exec 的命令结束标记,因为规定-exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成;。
    (f) 实验楼环境中有很多自己编写的 c 语言代码文件,现在想要把所有 c 语言代码文件下载下来,如果一个一个的下载很麻烦,我们可以先查找到所有的 c 语言代码文件,然后将这些文件内容写入到一个文件中,下载该文件,可以使用如下命令:find . -name "*.c" -exec cat {} \; > all.c
    默认下,-exec 后面只能使用单个命令,如果想要多个命令,可以将多个命令写入脚本文件中,然后在-exec 中使用这个脚本,可以使用如下命令:find . -name "*.c" -exec ./command.sh {} \;
    脚本内容:
    ls -l $1 # $1 表示第一个参数(传参)
    cat $1

逻辑关系
在这里插入图片描述
2. xargs
我们可以用管道将一个命令的 stdout(标准输出)重定向到另一个命令的 stdin(标准输入)。但有些命令只能以命令行参数的形式接收数据,而无法通过 stdin 接收数据流。这时 xargs 就可以发挥它的作用了,xargs 命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表。
将多行输入转换为单行输出,可以使用如下命令:cat a.txt | xargs
将单行输入转换为多行输出,可以使用如下命令:echo "1 2 3 4 5 6 7" | xargs -n 3
将单行输入转换为多行输出,指定分隔符为 i,可以使用如下命令:cat b.txt | xargs -d i -n 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值