• 文件的其他操作命令


    目录

    1. 文本内容统计wc

    1.4. 示例

    2. 复制、移动文件

    2.1. 复制文件或目录

    2.2. 移动文件或目录

    3. 查找文件

    3.1. 查找文件路径

    3.1.1. whereis命令

    3.1.2. which命令

    3.2. 查找文件-find

    3.2.5. 示例

    1. 按照文件名搜索

    2. 按照文件大小搜索

    3. 按照修改时间搜索

    4. 按照权限搜索

    5. 按照所有者和所属组搜索

    6. 按照文件类型搜索

    7.逻辑运算符

    8. -exec参数

    4. 压缩和解压缩

    4.1. zip和unzip命令

    例:

    4.2. gzip命令

    4.3. bzip2命令        

    4.4. xz、unxz命令        

    5. tar归档命令

    5.1. 格式

    5.2. 参数

    5.3. 格式

    5.4. 示例


    1. 文本内容统计wc

    1.1. 作用

                    wc命令用于统计指定文本文件的行数、字数或字节数

    1.2. 格式

                    wc         -参数         文件名

    1.3. 参数

    1.4. 示例

    统计所有

      38           89         2136         /etc/passwd
    行数·      单词数   字节数              

    配合管道符计算

    显示文件数

    2. 复制、移动文件

    2.1. 复制文件或目录

    2.1.1. 格式      

                      cp         -参数         源文件         目标文件

    2.1.2. 参数

    2.2. 移动文件或目录

    2.2.1. 作用

            mv命令用于剪切或重命名文件

    2.2.2. 格式

                    mv         [选项]         源文件名称 目标文件名称

    2.2.3. 注意

            1.剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。

             2.如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。

    证明注意一: 

    1. [root@server q1]# ls
    2. f1.txt m1 r2 r3 t1
    3. [root@server q1]# mv t1 /root/q1/m1/
    4. [root@server q1]# ls
    5. f1.txt m1 r2 r3
    6. [root@server q1]#

    证明注意二:  

    1. [root@server q1]# cd m1
    2. [root@server m1]# ls
    3. t1
    4. [root@server m1]# mv t1 t5
    5. [root@server m1]# ls
    6. t5
    7. [root@server m1]#

    3. 查找文件

    3.1. 查找文件路径

    3.1.1. whereis命令

    作用:可以搜索系统命令的可执行文件路径说明文档

    格式:whereis         命令名

    例: 

    3.1.2. which命令

    作用:搜索系统命令的可执行文件

    格式:        which         命令名

    例:

    3.2. find—查找文件

    3.2.1. 作用

            按照文件名大小时间权限类型所属者所属组  来搜索文件

    3.2.2. 格式

            find         查找路径         查找条件        具体条件         操作

    3.2.3. 注意

             1.find命令默认的操作是print输出         

             2.find是检索文件的,grep是过滤文件中字符串

    3.2.4. 参数

    3.2.5. 示例

    1. 按照文件名搜索

             -name:按照文件名搜索

             -iname:按照文件名搜索,不区分文件名大小写

            -inum:按照 inode 号搜索

            没有那个文件或目录:find命令在执行时,在内存中自己产生的临时文件,执行完既消失

            注意:搜索位置越大,消耗系统资源越多,在生产服务器上搜索的时候,尽量不在根目录下搜索,把 搜索的范围尽量控制在最小

    # /目录下检索名为passwd的文件

            [root@server q1]# find / -name "passwd" -print

    # /etc下检索host开头的文件     

             [root@server ~]# find /etc -name "host*" -print

    #在/目录查找以a开头文件

            [root@server ~]# find / -name "a*"

    # 在/目录中查找以b开头的不区分大小写的文件

            [root@server ~]# find / -iname "b*"

    # 在/etc目录下检索以b开头共4个字符的文件

            [root@server ~]# find /etc -name "b???"

    # 在/etc目录下检索第二个字母为c的文件

            [root@server ~]# find /etc -name "?c*"

    # /目录下检索扩展名为.cfg的文件

            [root@server ~]# find / -name "*.cfg"

    # /目录下检索扩展名为.txt的文件并统计个数

            [root@server ~]# find / -name "*.txt" | wc -l

    2. 按照文件大小搜索

             -size [+|-]大小: 按照指定大小搜索文件,“+”的意思是搜索比指定大小还要大的文件, “-”的意思是 搜索比指定大小还要小的文件

            单位:可以通过man find 查看size参数的单位

    # 默认单位,如果单位为b或不写单位,则按照512 Byte搜索。

            ' b':for 512-byte blocks(this is the default if no suffix is used)

    #搜索单位是c,按照字节搜索。

            'c':for bytes
    #搜索单位是w,按照双字节(中文)搜索。

            'w':for two-byte words

    #按照KB单位搜索,必须是小写的k。

            'k':for Kilobytes(units of 1024 bytes)

    #按照MB单位搜索,必须是大写的M

            'M':for Megabytes(units of 1048576 bytes)

    #按照GB单位搜索,必须是大写的G

            ' G':for Gigabytes(units of 1073741824 bytes)

    [root@server ~]# find / -size -1k |wc -l

    [root@server ~]# find / -size +100M |wc -l

    [root@server ~]# find . -empty  | wc -l  # 空文件  |  个数

    3. 按照修改时间搜索

            -atime [+|-]时间: 按照文件访问时间搜索

            -mtime [+|-]时间: 按照文件数据修改时间搜索

            -ctime [+|-]时间: 按照文件状态修改        时间搜索

            -newer file: 把比file修改时间更新的文件列出来

            注意:时间范围问题

                    -5:代表 5 天内修改的文件。

                     5:代表前 5~6 天那一天修改的文件。

                     +5:代表 6 天前修改的文件。

    [root@master ~]# find / -mtime -10 -empty 10天以内的空文件

    4. 按照权限搜索

            -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件 ,常用

            -perm -权限模式: 查找文件权限全部包含“权限模式”的文件

            -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件

             如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:

    [root@server ~]# find . perm 755 

    [root@server ~]# find / -perm -4000

    5. 按照所有者和所属组搜索

            -uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件

            -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件

            -user 用户名: 按照用户名查找所有者是指定用户的文件

            -group 组名: 按照组名查找所属组是指定用户组的文件

            -nouser: 查找没有所有者的文件 ,常用,主要用于查找垃圾文件,还有一种情况就是外来文件,比如 光盘和U盘中的文件如果是由Windows复制来的(也就是文件是由windows建立的),在Linux中查 看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者(由其他系统打的源 码包)

    [root@server ~]# find . -user root

    [root@server ~]# find / -nouser # 查看无所有者的文件

    6. 按照文件类型搜索

            -type d: 查找目录

            -type f: 查找普通文件

            -type l: 查找软链接文件

    例:

    [root@server ~]# find /dev -type b

    [root@server ~]# find ~ -type d

    [root@server ~]# find /dev -type c -size -10k 

    7.逻辑运算符

                    -a: and 逻辑与

                    -o: or 逻辑或

                    -not: not 逻辑非

            优先级:与>或>非

    [root@server ~]# find / -size +10k -a -size -50k  | wc -l 

    [root@server ~]# find /etc -name "e*" -o -name "f*"  | wc -l 

    [root@server ~]# find /etc -name "d*" -user root  | wc -l     # 默认为and

    8. -exec参数

            作用:

                    用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,类似于管道符,该参数必须 为带减号的长参数。

             使用-exec命令结尾必须为\;

    # 将/root 目录下的属于root账户的文件检索出来后拷贝到/目录下的find1目录中

             [root@server ~]# find ~ -user root -exec cp -a {} /find1/ \;

    4. 压缩和解压缩

    4.1. zip和unzip命令

    4.1.1. 格式:

                     zip FILE # 压缩

                     unzip FILE # 解压缩

    例:

    例1: 使用zip压缩文件test1.txt

            [root@server test]# zip test1.zip test1.txt

    # 压缩率为最高压缩test2.txt,-1 : 最快压缩,压缩率最差,-9 : 最大压缩,压缩率最佳         [root@server test]# zip -9 test2.zip test2.txt #

    例2: 将当前目录dir1连同目录下文件一起压缩

            [root@server test]# zip -r dir1.zip dir1

    # 例3: 向压缩文件中test1.zip中添加test2. txt文件

            [root@server test]# zip -m test1.zip test2.txt

    # 例4: 删除压缩文件中的文件

            [root@server test]# zip -d test1.zip test2.txt

    # 例5: 压缩文件时排除某个文件

            [root@server test]# zip test.zip *.txt -x test1.txt

    # 例6: 解压文件test2.zip

            [root@server test]# unzip test2.zip

    # 例7:将压缩文件text.zip在指定目录dir1下解压缩

            [root@server test]# unzip test.zip -d dir1

    # 例8: 查看压缩文件目录,但不解压

             [root@server test]# unzip -v test.zip

    4.2. gzip命令

    # 例1: 使用gzip压缩文件

            [root@server test]# gzip test1.txt

    # 例2: 使用gzip压缩目录下文件

            [root@server test]# gzip -r dir1

            [root@server test]# ls dir1

    #注意: 以上压缩之后原始文件就没有了。

    # 例3: 压缩但保留原始文件

            [root@server test]# gzip -c test2.txt > test2.txt.gz

    4.3. bzip2命令        

    # bzip2是更新的Linux压缩工具,比gzip有着更高的压缩率。

            [root@server test]# bzip2 test3.txt

    # 源文档不保留

            [root@server test]# bzip2 -9 -c test3.txt > test3.txt.bz2

    # 用最佳的压缩比压缩,并保留 原本的档案

    4.4. xz、unxz命令        

    # 例1:压缩文件

             [root@server test]# xz test5.txt

      # 例2:压缩dir1目录下文件

             [root@server test]# xz dir1/*

             [root@server test]# ls dir1

    # 例3:查看压缩文件内容

            [root@server test]# xzcat test5.txt.xz test1

    # 例4:解压缩(xz -d等价于unxz)

             [root@server test]# unxz test5.txt.xz

    5. tar归档命令

    5.1. 格式

                    tar         -参数         [args]……

    5.2. 参数

    5.2.1. 常用参数

    5.2.2. 必选参数

    5.2.3. 辅助参数

    5.2.4. 额外参数

            # 打包时排除某个文件 tar cf 文件名.

            tar --exclude=路径/文件 路径

             注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径

    5.3. 格式

    5.3.1. 打包

            作用:

                    创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件

                    tar         cvf/cfv/-cvf         文件名.tar      要打包的目录或文件名

    列出包文件中的文件列表

                    tar          t[v]f         包文件名 `

    5.3.2. 打包压缩

             作用:

                    为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式

    tar         czf/-czf         文件名.tar.gz         要打包压缩的目录或文件名……

    tar         cjf/-cjf         文件名.tar.bz2         要打包压缩的目录或文件名……

    tar         cJf/-cJf         文件名.tar.xz         要打包压缩的目录或文件名……

    提取包文件到指定目录

    tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]

    tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]

    tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]

    5.4. 示例

            将/etc下所有内容打包压缩到/root目录中

                    [root@server ~]# tar -cvf taretc.tar.gz /etc

    解压缩

            [root@server ~]# mkdir temp

            [root@server ~]# mv taretc.tar.gz temp

            [root@server ~]# cd temp

            [root@server temp]#

             [root@server temp]# tar -xvf taretc.tar.gz

    注意:参数中-c 与 -x 不能同时使用

  • 相关阅读:
    Ruby中Rack中间件的使用场景和注意事项
    设计模式之中介者模式
    Java实现经纬度坐标转换(GPS-高德)
    Linux vim编辑器
    查看docker资源占用,及释放资源
    git常用命令
    力扣第50天--- 第84题
    在 Azure ML 上用 .NET 跑机器学习
    集合—ArrayList底层结构和源码分析
    Spark3.x入门到精通-阶段一(入门&yarn集群&java和scale双语开发)
  • 原文地址:https://blog.csdn.net/2302_77035737/article/details/133204965