美文网首页
linux 文件操作命令

linux 文件操作命令

作者: 墨线宝 | 来源:发表于2023-08-18 16:49 被阅读0次

    文件操作命令

    创建文件

    使用touch命令可以创建和修改文件时间

    # 如果是已存在的文件,则会更新时间戳
    touch test.txt
    # 创建多个文件
    touch test1.txt test2.txt
    # 批量创建文件
    touch test{3..11}.txt
    
    --------------
    -a  只修改文件的最后访问时间
    -m  只修改文件的修改时间
    -c  仅修改时间,不创建文件
    -d  指定时间
    -r  修改文件时间相同,如touch -r a.txt b.txt  使得b.txt的时间和a.txt的时间相同
    -t  设置为指定时间,格式为[[CC]YY]MMDDhhmm[.ss]
    

    使用mktemp可以创建临时文件,会在/tmp目录下产生一个tep.xxxxxx的临时文件

    删除文件

    在使用rmdir删除目录的时候如果目录中存在子目录是不可以被删除的,使用起来比较恶心,所以在删除文件或者目录的时候都习惯于使用rm来删除

    #这里注意如果加上-f选项的话,就会强制删除,无法找回,删除之前要考虑清楚
    rm -rf test.txt
    
    ---------------
    选项
    -f  强制删除,不需要要确认
    -r  递归删除
    -i  删除提示
    -v  详细显示删除过程
    

    查看文件

    file命令

    file命令可以确定文件类型

    file [options] file-list
    
    -f file 从文件file中读取要检测的文件
    

    stat命令

    查看文件详细信息

     stat abc.txt
     
     ----------------------------
      File: `abc.txt'
      Size: 5               Blocks: 8          IO Block: 4096   regular file
    Device: fd00h/64768d    Inode: 131272      Links: 1
    Access: (0664/-rw-rw-r--)  Uid: (  500/ zhanghe)   Gid: (  500/ zhanghe)
    Access: 2021-02-14 18:34:47.995289019 +0800
    Modify: 2021-02-14 18:34:58.308673839 +0800
    Change: 2021-02-14 18:34:58.308673839 +0800
    
    

    cat命令

    查看文件内容

    cat abc.txt
    
    -----------------------
    选项
    -A 相当于-vET,列出所有的隐藏字符
    -E 列出每行结尾的回车符$
    -n 显示行号
    -T 把Tab键用^I表示出来
    -v 展示特殊字符
    
    

    more命令

    cat不适合查看大文件,使用more命令来分屏显示

    more abc.txt
    
    
    --------------------
    +n  从第n行开始显示
    -n  每次查看n行
    +/字符串   查找字符串所在位置
    -c  清屏再显示
    -p  换页时清屏
    空格键  向下翻页
    b   向上翻页
    回车   向下滚动一行
    q   退出
    

    less命令

    less也能分页显示文件,和more类似,不过允许在文件中一行或多行的前后滚动

    head和tail命令

    head是显示文件头,tail是显示文件尾,默认10行

    tail abc.txt
    
    
    -------------------------
    选项
    -n   显示行数
    -f   监听文件新增内容,滚动
    -v   显示文件名
    -c number  显示前number个字符,若number为负数,则显示除最后number个字符的所有内容
    
    
    进阶

    ①从1000行开始显示500行

    cat jvm.log | tail -n +1000 | head -n 500
    

    ②显示1000到2000行

    cat jvm.log | head -n 2000 | tail -n +1000
    

    软链接

    建立文件的软链接(可以看作是windows的快捷方式)

    ln [options] source_file target_file
    
    # 如果不加-s的话,则创建的是硬链接,硬链接相当于copy了一份源文件,且两个文件同步更新
    ln -s abc.txt abc_c.txt
    
    -f  强制创建链接
    -n  如果target_file已存在,不创建链接
    -s  为source_file 创建一个软链接,名为target_file
    
    ls -l
    -------------------------------
    total 4
    lrwxrwxrwx. 1 zhanghe zhanghe 7 Feb 14 19:59 abc_c.txt -> abc.txt
    -rw-rw-r--. 1 zhanghe zhanghe 5 Feb 14 18:34 abc.txt
    
    

    特征

    • 软链接和源文件拥有不同的Inode和block
    • 修改任意一个,两者都会修改
    • 删除源文件,软链接不可用;删除软链接,源文件没有影响
    • 软链接不存储真实数据,存储的是源文件的Inode

    复制文件

    cp abc.txt /home/zhanghe/Documents/test/aaa.txt
    
    
    ----------------------------
    选项
    -r   递归复制,用于复制目录
    -p   保留源文件的属性,如所有者、权限和时间
    -f   强制复制,如果文件存在,会进行强制覆盖
    -s   生成快捷方式
    -i   询问是否覆盖
    -d   如果源文件是软链接,则复制出来的也是软链接
    -a   相当于-dpr
    -v   显示复制过程
    

    在复制的时候,如果目标位置是目录,则将文件复制过去,如果目标位置是文件,则将文件内容复制过去

    剪切或者重命名

     mv aaa.txt acs.txt
    
    -------------------------
    -f   如果文件存在,强制覆盖
    -b   覆盖前做备份
    -i   如果文件存在,询问是否覆盖
    -v   显示详细信息
    -t   将多个文件移动到同一个目录,目录参数在前,文件参数在后
    

    剪切如果在同一目录下就是重命名,不在同一目录下就是剪切

    查看文件格式及其编码

    file -b read.sh
    

    查看文件的MIME类型

    file -i read.sh
    

    可以通过file命令来看该软链接的文件本身是谁

    file read_s.sh
    

    比较文件

    diff命令

    可以一行一行的对比两个文件

    diff [options] file1 file2
    
    -b  忽略行尾的空白
    -e  生成并且显示一个脚本
    -h  快速比较
    

    重复行

    使用uniq命令可以删除文件中所有连续的重复行,所以一般与sort来结合使用,先进行排序在进行去重

    # input-file本身不会发生改变,如果没有指定output-file,会将输出为标准输出
    uniq [options] [+N] [input-file] [output-file]
    
    -c  在每行之前显示它们出现的次数
    -d  只显示重复行,只显示出现多次的行
    -u  只显示未重复的行,只显示出现一次的行
    

    https://zhhll.icu/2021/linux/基础/文件操作命令/

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:linux 文件操作命令

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