shell文件基本操作
file operation
definition
- 什么是Linux的文件系统?
- cat
- cat
- -n 对输出的内容加上行号
- -b 对输出的内容(除空白行外)都加上行号
- /dev/null > [file name] 清空当前file的内容
- cat
- chgrp 改变文件或目录的所属群组
-v/-c 改变当前文件的群组
eg:如果想将当前目录下的README文件移动到bin group中
- chgrp -c bin REMDME.md
- 查看当前用户的所属的用户组
group
- 运行一下命令将用户添加至指定用户组
1
sudo dseditgroup -o edit -a username -t user groupname
- 使用场景
- 用户权限隔离
- 咋实现的~可以深究一下
-R 循环递归处理,将当前目录下的其他的文件采用同样的处理
- eg:
chmod [-R] xyz 文件或者目录
,表示连同次目录下的所有文件都会变更
- eg:
- 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 从尾部开始获取文章
- cat 从文件第一行开始显示
比较两个文件的不同
diff
diff README.md ../README.md -y -W 50
tips:**|** 表示同行有不同,**<** 后文件比前文件少一行,**>** 后文件比前文件多一行
diff file1 file2 | diffstat, 统计两个文件的变化字数
cmp
- 输出两个文件第一处不相同的位置
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的转义字符
- 利用find命令执行多repository的git pull
ln (link file) 使文件和一固定的文件目录建立链接,然后就可以直接使用该文件,避免了文件的拷贝,减少重复的磁盘占用
ln -s filename link name
- 怎么实现的??
阅读文件
- less
- more(分页读取数据)
编辑文件
- sed 对文件内容做基础的替换 (linux与macOS上有区别)
- linux:
- sed -i s’new/original’ (将文件内容替换并保存)
- sed -i_bkp ~ (将文件内容替换并保存,备份)
- maxOS
- sed -i “” ~
- sed -i “bkp” ~
- linux:
- sed 对文件内容做基础的替换 (linux与macOS上有区别)
提取字符
- cut 获取文件中,每一行的某个位置的值
- linux
cut -d' ' -f1
- mac
cut -f1 -d ' '
orcut -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