shell文件基本操作

Xiao Qiang Lv4

file operation

definition

  • 什么是Linux的文件系统?
  • cat
    • cat
      • -n 对输出的内容加上行号
      • -b 对输出的内容(除空白行外)都加上行号
      • /dev/null > [file name] 清空当前file的内容
  • chgrp 改变文件或目录的所属群组
    • -v/-c 改变当前文件的群组

      • eg:如果想将当前目录下的README文件移动到bin group中

        • chgrp -c bin REMDME.md
        • error notification
        • 查看当前用户的所属的用户组 group
          当前用户所属用户组
        • 运行一下命令将用户添加至指定用户组
        1
        sudo dseditgroup -o edit -a username -t user groupname
        • 使用场景
          • 用户权限隔离
          • 咋实现的~可以深究一下
    • -R 循环递归处理,将当前目录下的其他的文件采用同样的处理

      • eg: chmod [-R] xyz 文件或者目录,表示连同次目录下的所有文件都会变更
  • chmod (change mode)
    • r - 4, w - 2, x - 1
    • chmod u=rwx g=rx o=r file name使用符号改变文件的权限
user (属主) group(属组) other user all
u g o a
  • chown (chanage owner)

    • tip: 必须root用户才能执行该命令
  • linux文件查看命令

    • cat 从文件第一行开始显示 -b 列出行号,空白不管,-n空白处行号, -v列出特殊字符,多个操作符可以组合操作 eg: cat -b -v file name
    • tac 从文件最后一行开始显示
    • nl 直接显示文件的行号
    • head 从头部开始获取文章
    • tail 从尾部开始获取文章
  • 比较两个文件的不同 diff

    • diff README.md ../README.md -y -W 50

    并排比较

    • tips:**|** 表示同行有不同,**<** 后文件比前文件少一行,**>** 后文件比前文件多一行

    • diff file1 file2 | diffstat, 统计两个文件的变化字数

    • cmp

      • 输出两个文件第一处不相同的位置

diff

  • file: 检索文件类型

    • -b 只输出文件类型,不输出文件名称
    • -i 输出文件MIME
  • find 查找文件,并执行bash命令

    • syntax:

      1
      find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
    • -mindepth 1 -maxdepth 1 指定文件查找深度

    • 应用

      • 利用find命令执行多repository的git pull
        1
        find . -mindepth 1 -maxdepth 1 -type d -print -exec git -C {} pull \;
      • 寻找当前目录下子目录(最小,最大深度为1),文件类型为directory,**{}** 作为find命令的输出目录,**;** 作为 -exec的终结符,**/** 作为Semicolon的转义字符
  • ln (link file) 使文件和一固定的文件目录建立链接,然后就可以直接使用该文件,避免了文件的拷贝,减少重复的磁盘占用

    • ln -s filename link name

    soft link

    • 怎么实现的??
  • 阅读文件

    • less
    • more(分页读取数据)
  • 编辑文件

    • sed 对文件内容做基础的替换 (linux与macOS上有区别)
      • linux:
        • sed -i s’new/original’ (将文件内容替换并保存)
        • sed -i_bkp ~ (将文件内容替换并保存,备份)
      • maxOS
        • sed -i “” ~
        • sed -i “bkp” ~
  • 提取字符

    • cut 获取文件中,每一行的某个位置的值
    • linux
      • cut -d' ' -f1
    • mac
      • cut -f1 -d ' ' or cut -d' ' -f1
  • 统计

    • 词数 wc -w
    • 行数 wc -l
    • tip: mac中使用wc命令的输出的前面会有很多的空格,所以如果使用管道的传递结果的话,使用单个空格处理的话要注意
  • 管道 |

    • 将上一步执行结果的内容作为参数传递给下一步执行
    • eg: wc -l file|cut -d' ' -f1,输出file的行数,然后再对输出结果做cut处理
  • Title: shell文件基本操作
  • Author: Xiao Qiang
  • Created at : 2023-03-05 15:08:12
  • Updated at : 2025-03-08 10:49:30
  • Link: http://fdslk.github.io/tech/shell/2023/03/05/shell-file-operation/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
shell文件基本操作