• linux学习二:文件及目录相关命令


    文件目录相关

    创建、删除多个目录

    mac@KbMan:~/Desktop/3_学习_kbman/linux> touch {1..10}.txt
    mac@KbMan:~/Desktop/3_学习_kbman/linux> ls
    1.txt  10.txt 2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt
    mac@KbMan:~/Desktop/3_学习_kbman/linux> rm {1..10}.txt
    mac@KbMan:~/Desktop/3_学习_kbman/linux> ls
    

    tree

    yum install tree
    tree -F  # 给目录加个 / 
    tree -d  # 只查看目录
    tree -L 2  # 只遍历两层目录
    tree -L 2 /etc  #查看指定目录
    tree –help
    
    参  数:
    -a 显示所有文件和目录。
    -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
    -C 在文件和目录清单加上色彩,便于区分各种类型。
    -d 显示目录名称而非内容。
    -D 列出文件或目录的更改时间。
    -f 在每个文件或目录之前,显示完整的相对路径名称。
    -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。
    -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
    -i 不以阶梯状列出文件或目录名称。
    -I <范本样式> 不显示符合范本样式的文件或目录名称。
    -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
    -n 不在文件和目录清单加上色彩。
    -N 直接列出文件和目录名称,包括控制字符。
    -p 列出权限标示。
    -P <范本样式> 只显示符合范本样式的文件或目录名称。
    -q 用”?”号取代控制字符,列出文件和目录名称。
    -s 列出文件或目录大小。
    -t 用文件和目录的更改时间排序。
    -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
    -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上
    

    mkdir

    mkdir /a/b/c  # 创建多级目录
    mkdir -p a/b/c    # 递归创建目录,可以连续创建多个目录
    mac@KbMan:~/Desktop/3_学习_kbman/linux> mkdir a{1..3}
    mac@KbMan:~/Desktop/3_学习_kbman/linux> ls
    a  a1 a2 a3
    mac@KbMan:~/Desktop/3_学习_kbman/linux> mkdir a{a..e}
    mac@KbMan:~/Desktop/3_学习_kbman/linux> ls
    a  a1 a2 a3 aa ab ac ad ae
    mkdir a{j,k,l}
    

    touch

    touch test{a..c}.txt  # testa.txt testb.txt testc.txt
    

    cp

    -p:保留源文件或目录的属性,保持权限不变
    -a == -pdr
    

    mv:重命名、移动文件

    文件内容相关命令:

    echo

    echo 内容 > 文件名
    echo hello world  # 输出到控制台
    echo hello > 1.txt  # 输出到文件
    echo hello2 >> 1.txt  # 追加内容到文件
    echo -e  # 开启转义
    

    cat

    1. 查看文件内容

    2. 将一个文件的内容输出到另一个文件,

      cat test.txt > test2.txt 
      cat 1.py > 2.py  # 会覆盖
      cat 1.py >> 2.py  # 追加内容
      
    3. 合并文件内容

      mac@KbMan:~/Desktop/3_学习_kbman/linux> cat 1.py 2.py > 3.py
      mac@KbMan:~/Desktop/3_学习_kbman/linux> cat 3.py
      print("hello world")
      print("hello world")
      mac@KbMan:~/Desktop/3_学习_kbman/linux>
      
    -b  # 显示行编号(忽略空行)
    -n  # 显示所有行编号(包括空行)
    

    cat输入内容,而不需要打开vim。

    mac@KbMan:~/Desktop/3_学习_kbman/linux> cat > 3.py << EOF
    > asldkf
    > ]asldfk
    > ]2314
    > asdlfkj
    > as;dklfj
    > asd;lfj
    > EOF
    mac@KbMan:~/Desktop/3_学习_kbman/linux> cat 3.py
    asldkf
    ]asldfk
    ]2314
    asdlfkj
    as;dklfj
    asd;lfj
    mac@KbMan:~/Desktop/3_学习_kbman/linux>
    

    more 分页显示大文件内容,看到文件最后一行直接退出

    less 分页显示大文件内容,看到文件最后一行不会直接退出

    • 空格/f 下一页
    • b 上一页
    • q 退出

    head:查看大文件前几行

    • head -n 10 bigfile # 查看前十行

    tail: 查看大文件末尾几行

    • tail -n 10 bigfile

    grep: 文本过滤工具

    ps -aux | grep python
    # | 是管道的意思,把前面的输出结果,交给 grep 来过滤
    参数:
    	-v: 排除、取反
    	-n: 加入行号
      
    ps -aux | grep -vn python
    

    tr: 替换或删除字符

    # 没有影响原来的文件
    mac@KbMan:~/Desktop/3_学习_kbman/linux> cat tr_test.txt
    asdfasdflkj
    alskdflasjqwer
     ldakfsjlskd
    mac@KbMan:~/Desktop/3_学习_kbman/linux> tr 'a' "A" < tr_test.txt
    AsdfAsdflkj
    AlskdflAsjqwer
     ldAkfsjlskd
    mac@KbMan:~/Desktop/3_学习_kbman/linux> cat tr_test.txt
    asdfasdflkj
    alskdflasjqwer
     ldakfsjlskd
    mac@KbMan:~/Desktop/3_学习_kbman/linux>
    
    # 将文件中所有 'a' 替换成 'A' , 并新建文件
    mac@KbMan:~/Desktop/3_学习_kbman/linux> tr 'a' "A" < tr_test.txt > tr_test_result.txt
    mac@KbMan:~/Desktop/3_学习_kbman/linux> cat tr_test_result.txt
    AsdfAsdflkj
    AlskdflAsjqwer
     ldAkfsjlskd
    mac@KbMan:~/Desktop/3_学习_kbman/linux>
    
    # 删除文件中所有字符 'A',并新建文件
    tr -d 'A' < tr_test_result.txt > tr_delete.txt
    
  • 相关阅读:
    深入浅出:了解前后端分离优势、前后端接口联调以及优化问题
    深入浅出:了解JavaScript中的call,apply,bind的差别
    Vue2.0 搭建Vue脚手架(vue-cli)
    深入浅出:promise的各种用法
    深入浅出:了解常见的设计模式(闭包、垃圾回收机制)
    sql server xml 功能
    sqlite 用法
    PowerDesigner使用
    asp.net 开发注意的几点
    vue template
  • 原文地址:https://www.cnblogs.com/KbMan/p/12416323.html
Copyright © 2020-2023  润新知