zoukankan      html  css  js  c++  java
  • (linux shell)第二章--命令之乐(一)

    文章来自于我的个人博客:(linux shell)第二章--命令之乐(一)   

    上一章我们描写叙述了一些linux shell中须要注意的一些语法。接下来我们開始了解linux shell的经常使用命令。let's go...

    1. cat 命令:

      cat本身表示拼接(concatenate)。cat命令有一些经常使用參数,像-n,-s等,我们以下逐一介绍:

      假设你想高速查看一个文本文件内容。就能够使用cat命令:

      cat file

      假设你想一次查看多个文件内容。也是在后面加上文件路径就可以

      cat file1 file2 file3

      假设想显示文本文件的行号。则使用參数-n:

      cat -n file 或者 cat -n file1 file2 file3

      假设想去掉文本中的空行。则使用參数 -s:

      cat -s file 或者 cat -s file1 file2 file3 当然这里也能够使用tr命令来益处空白行:cat file | tr -s '';  这个tr命令的意思是说将多个换行符当作一个换行符来看待。

    2. find 命令:

      find命令是沿着文件层次结构向下遍历,匹配符合条件的文件,并运行对应的操作。

      基本的语法:

      find . -print   #打印出带有路径的当前文件夹下的全部文件路径

          find命令也有非常多參数,我们以下来看一些经常使用參数的使用方法:

              1).依据文件名称或者正則表達式匹配搜索

                    find . -name "*.sh" -print   #从当前文件夹查找全部符合以sh结尾的文件,并打印到终端

                    

                     -name另一个相应的-iname来忽略keyword的大写和小写

                    find . -iname "*.sh" -print

            2).依据路径匹配

                    find . -path "*test*" -print  #从当前文件夹開始。查找路径前缀是test的全部路径以及打印出这些文件夹下的文件

                    

            3).基于正則表達式的匹配 -regex

                    find . -regex ".*.py$" -print

                    

             4).否定參数 !

                    假设想要查找不包括条件的文件,则在类型前面加上!就可以:

                    find . ! -name "*.sh" -print

                    

            5).给予文件夹深度的搜索 -maxdepth 和-mindepth

                    我们能够通过这个命令来限制find向下查找的深度

                    find . -maxdepth 1 -type f -print   #在当前文件夹的当前文件夹查找是文件类型的文件,也就是查找时它不会向下遍历

                    

                    -maxdepth和-mindepth应该作为find的第三个參数出现,假设作为第四个或者之后的參数出现,就可能会影响到find的效率,由于  它不得不进行一些不必要的检查。

        ​    ​6).依据文件类型搜索 -type

        ​    ​    ​find . -type d -print   #仅仅列出全部的文件夹

        ​    ​    ​

        ​    ​    ​find . -type f -print   #仅仅列出全部的文件

        ​    ​    ​find . -type l -print    #仅仅列出全部的链接

        ​    ​7).依据文件的时间搜索  -mtime(改动时间) -atime(訪问时间) -ctime(变化时间),时间用+,-来表示时间的前后

        ​    ​    ​find . -type f -atime -7 -print   #打印出在近期7天内被訪问的全部文件

        ​    ​    ​

        ​    ​    -amin(訪问时间),-mmin(改动时间),-cmin(变化时间)

        ​    ​    ​find . -type f -amin +7 -print    #打印出訪问时间超过7分钟的全部文件

        ​    ​    ​find . -type f -newer file.sh -print   #找出比file.sh改动时间更长的全部文件

        ​    ​8),基于文件大小的搜索  -size

        ​    ​    ​find . -type f -size +2k    #查找大于2KB的全部文件,除了k之外,还能够使用b--块,c--字节,w--字,M--兆字节,G--吉字节

        ​    ​    ​

        ​    ​    ​find . -type f -size 2k   #大于等于2KB的文件

        ​    ​    ​find . -type f -size -2k  #小于2KB的文件

        ​    ​9).匹配操作

        ​    ​    ​find . -name "*.sh" -delete   #删除匹配的全部文件(甚用)

        ​   10).基于文件权限和全部权的匹配  --perm

        ​    ​    ​find . -type f -perm 644 -print   #打印出权限为644的文件

        ​   11).结合find运行命令或动作

        ​    ​    ​find命令能够借助选项-exec与其它命令进行结合,-exec算得上是find最强大的特性之中的一个。

        ​    ​    ​find . -type f -user root -exec chown test {} ; 这个命令中,{}是一个特殊字符串,与-exec选项结合使用。对于每一个匹配的文件,{}会被替换成对应的文件名称。在上面的命令中,先查找文件所属是root用户的全部文件,然后给test用户加入权限。

        ​    ​    ​find . -type f -name "*.sh" -exec cat {} ; > all_sh_files.txt  这个命令是先查出全部的sh文件。然后将文件的内容都加到文本文件里。​

  • 相关阅读:
    Mac 下的 Homebrew 简介及安装
    配置Mac打开ntfs的外设磁盘硬盘的原生读写/Mac OS上使用不同格式的磁盘
    ztree使用 (一) 递归后台的数据
    springboot整合redis 配置文件及配置类(二)
    springboot整合redis 配置文件及配置类(一)
    java登录拦截器
    获取小程序二维码
    java合成图片
    微信 获取手机号
    js+html5点击赋值到剪贴板
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6726952.html
Copyright © 2011-2022 走看看