BASH文件操作
文件状态:stat
适用于文件系统的格式代码:
文件属性:chattr
chattr +属性代码 filename
chattr =属性代码 filename
chattr - 属性代码 filename
属性代码有:AaDdijsSu
常用的如图:
比较文件不同:diff
如甲乙都有filentest源码,甲先拷贝了filentest文件为B,并且修改B,那么使用下面的命令,生成和源文件的差异文件到B.patch
diff -u filentest B > B.patch
-u指采用“unified context”的diff格式
乙拿到B.patch文件后,将这个差异文件和源文件filentest放在一个目录下,使用命令:
patch -p0 < newdiff.patch就可以获得甲手里修改过的B文件。
如果是多个文件夹,使用diff -uNr dirA dirB > diff.new
将diff.new放在源码目录同一层,使用patch -p1 < ../diff.new
搜寻文件内容:grep
grep -q keyword filename
如果文件内含有相关关键字,$?返回0,否则返回非0
grep -qe keyword filename
-e使用样式来搜寻文件内容
grep -qE keyword filename
-E使用扩展的样式
建立临时文件:mktemp
直接使用mktemp,会在/tmp下建立一个名字为tmp.xxxxxxxxxx 的文件,后面的xx表示随机字符
使用-t选项,决定临时盘的位置
mktemp -t /root/tmp/
使用-d选项,则使用的是暂存目录
mktemp -t /root/tmp
复制文件
cp -pf filename /tmp
-p 保持原有属性 -f 递归文件夹下的所有文件
cp -a filename /tmp
将filename中的所有文件,复制到tmp文件夹下,并携带属性