美文网首页
linux常用命令(关于cat find )基本用法

linux常用命令(关于cat find )基本用法

作者: Prince_wyf | 来源:发表于2018-12-24 22:30 被阅读148次

    cat

    cat 命令常用读取,显示或者拼接文件内容,不过cat的魅力不仅如此,接下来你将会看到关于cat的基本和高级用法 。

    1. 最简单的用法
    cat file.txt
    This is file.txt
    
    1. 打印多个文件的内容
    cat file1 file2 file3
    This is file1.txt
    This is file2.txt
    This is file3.txt
    
    
    1. 摆脱多余的空行
    cat file1.txt
    This is file1.txt
    
    
    aaaaa
     
    
    bbbbb
    用法 cat -s file1   # 有多处连续的空白行会只显示一处
    This is file1.txt
    
    aaaaa
    
    bbbbb
    

    4.显示行号

    cat  -n file
    cat -n line.txt
     1 lin1
     2 lin2
     3 lin3
    
    1. cat 重定向,在Linux shell 脚本中经常会见到的
    <<EOF
    (内容)
    EOF
    #  注意 EOF 是“end of file”,表示文本结束符,在这里完全可以使用其他字符替代例如:END FOE 等等
    例子:
    cat <<END>>file.txt
    username=wangwu
    age=19
    END
    结果:  # 在以前文件的基础上追加了两行信息,亦可以使用 >  清空原文件后再添加
    This is file1.txt
    
    
    
    aaaaa
    
    
    bbbbb
    username=wangwu
    age=19
    
    

    find

    find 几乎是Linux 中最棒的工具之一,它通常用于文件的查找,find 命令工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应操作。

    1. 列出当前目录及子目录下所有的文件和文件夹
    find path 
    eg: find . -print
    # 在Linux中 . 表示当前目录, .. 表示父级目录,print 指明打印出匹配的文件名(路径),不加print 也同样会打印
    2. 根据文件名或正则表达式进行搜索
    (1) -name 
    eg: find . -name *.sh
    # 表示查找当前目录下以 sh 结尾的文件, * 表示通配符
    补充: -iname 可以忽略大小写字母搜素
    (2) -path 
    find / -path "*/test/*"
    结果:
    /usr/lib64/python2.6/site-packages/OpenSSL/test/util.pyc
    /usr/lib64/python2.6/site-packages/OpenSSL/test/test_ssl.pyc
    /usr/lib64/python2.6/site-packages/OpenSSL/test/test_crypto.pyc
    /usr/lib64/python2.6/site-packages/OpenSSL/test/__init__.py
    #-name 是以给定的文件名 进行匹配,-path 是将文件路径作为一个整体进行匹配
    (3) -regex
    find . -regex ".*sh$" 
    # 利用正则匹配以sh结尾的文件,同样 -iregex 可以忽略大小写
    3. 否定参数
    find . ! -name "*.sh"
    # 匹配当前目录下不是以 ,sh 结尾的文件
    4. 根据文件类型搜索
    Linux 系统一切皆文件 ,所以我们就可以利用文件类型来对文件进行搜索
    find . -type d   # 列出当前目录下所有目录
    find -type f    # 列出当前目录下所有文件
    5. 根据文件时间进行搜索
    # 找出在7天内被访问过的文件
    find . -type f  -atime -7
    #  找出在刚好7天前被访问过的文件
    find . -type f -atime -7
    # 找出访问时间超过7天的文件
    find . -type f -atime +7
    
    atime 最后一次访问时间, 
    ctime 最后一次状态修改时间
    mtime 最后一次内容修改时间
    # 注意这些都是基于时间的参数并且计量单位都是天
    6. 基于文件大小进行搜索
    # 查找大于2kb 的文件
    find . -type f -size +2k
    # 查找小于2kb 的文件
    find . -type f -size -2k
    7. 删除匹配的文件
    find . -type f -name ".swp" -delete
    # 删除当前目录下所有 .swp 文件
    8. 根据文件的所有权进行搜索
    find . -type f -user root 
    # 打印root用户拥有的所有文件
    9. 利用find执行命令或动作
    find 命令可以借助选项-exec 与其他命令相结合。而 -exec 也是find最为强大的特性之一
    eg: find . -type f -user root -name "*.txt" -exec cat {}  \;
    # 查找出当前目录下所有 .txt 结尾的文件并使用cat查看,{}是一个与-exec 搭配使用的特殊字符串,对于每一个匹配的字符串 {} 都会替换成对应的文件名,例如上面的就可以解释为 find 先找到 root 用户拥有的 test1.txt 和 test2.txt 然后 cat {} 就会被解析成cat test1,txt 和 cat test2.txt 
    

    上面列举的是常见用法,还有一些用法尚未解锁,待我修成正果后再来补充。。。

    相关文章

      网友评论

          本文标题:linux常用命令(关于cat find )基本用法

          本文链接:https://www.haomeiwen.com/subject/yoktlqtx.html