笔记·文件管理
常用命令
#pwd //显示当前工作目录
#basename /etc/sysconfig/network //显示基名
#dirname /etc/sysconfig/network //显示目录名
#cd [-|~|~user|.|..|目录] //切换路径
#stat /etc/passwd //查看文件状态
#touch [-a|-m|-t YYMMDDhhmm] //创建文件,修改文件时间戳
#cp [-i|-f|-r|-d|-a] //拷贝文件或目录
#rename 'conf' 'conf.bak' f* //为所有的conf文件加上.bak后缀:
#rename '.bak' '' *.bak //去掉所有的bak后缀:
#ls [-l|-a|-A|-h|-d|-r:逆序|-R:递归|-S:时间排序] //显示文件
#rm -rf / //删除文件或目录
alias rm='DIR=/data/backup`date +%F`;mkdir $DIR &> /dev/null;mv -t $DIR' //自己创建回收站
#file //查看文件内容类型
#tree -L n //显示目录结构
#mkdir [-p|-m 755] //创建目录
#ln [-s:软连接] filename [linkname ] //创建软硬链接
rm -rf /data/dirlink //删除软链接本身,不会删除源目录内容
rm -rf /data/dirlink/ //删除源目录的文件,不会删除链接文件
#硬链接和软链接区别总结
1. 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件
2. 跨设备
硬链接:不支持
软链接:支持
3. inode
硬链接:相同
软链接:不同
4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5. 文件夹
硬链接:不支持
软链接:支持
6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8. 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
9. 文件大小
硬链接: 和源文件相同
软链接: 源文件的路径的长度
通配符
* 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
~ 当前用户家目录
~mage 用户mage家目录
. 和 ~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] 一个字母
[A-Z] 一个字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[^a-z] 匹配列表中的所有字符以外的字符
预定义的字符类
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
重定向
IO重定
向 >:覆盖输出
>>:追加输出
set -C:进制输出重定向覆盖已存在的文件,此时可以使用“>|”强制覆盖
set +C:关闭上述特性
2>:错误输出重定向
&>:合并正常和错误输出
2>&1:合并正常和错误输出
合并多个命令的结果至一个文件中
#( cal 2019 ; cal 2020 ) > all.txt
#{ ls;hostname;} > /data/all.log
tr命令:不修改源文件S
#tr 'a-z' 'A-Z' < /etc/issue #该命令会把/etc/issue中的小写字符都转换成大写字符
#tr –d abc < /etc/fstab #删除fstab文件中的所有abc中任意字符
#tr -s ' ' < df.log #去重空格符
#tr -s ' ' : < df.log #去重后的空格符用冒号代替
#cat /dev/urandom | tr -dc '[:alnum:]'| head -c10
管道符
#seq -s + 1 100 | bc