记录Linux文件操作相关操作,包含文件创建,文件权限,查找,统计等。

三、文件

3.1.创建文件

mkdir one 
#-p参数 递归创建
mkdir -p two/three

3.2.文件权限 所有权 和 粘滞位

-rwxr-xr-x+  1 root  wheel     93 11 26  2015 cs.sh
#第一个字母的对应关系
"-" ---普通文件
"d" ---目录
"c" ---字符设备
"b" ---块设备
"l" ---符号链接
"s" ---套接字
"p" ---管道				
1-3 用户权限 4-6 用户组权限 7-9 其他用户权限
		
chmod u=rwx g=rw o-r filename
u=指定用户权限
g=用户组权限
o=其他用户权限
#更改文件所有权
chown user.group filename
#以递归形式授权
chmod -R 755 .

3.3.查找文件差异

diff file.txt file1.txt
# -u 生成一体化输出,可读性更好
diff -u file.txt file1.txt 		
# 生成补丁
diff -u  file.txt file1.txt >version.patch
#打补丁
patch -p1 file.txt<version.patch
#以递归的形式用于目录
#-N 将确实是文件视为空文件
#-a 将所有文件视为文本文件
#-u 生成一体化输出
#-r 遍历目录下所有的文件
diff -Naur tmp1 temp2

3.4.head与tail-打印文件的前10行和后10行

cat main.go|head
cat main.go|head -n 4
#打印除最后五行外的所有行
seq 10|head -n -5
#打印文件第一行到第五行
seq 10|head -n 5
tail -n 10 main.go
#打印除前n行之外的行
tail -n +(N+1)
#打印除前五行之外的行
seq 100|tail -n 6
#查看文件实时增加的内容
tail -f a.log

3.5.统计文件的行数 单词数和字符数

#统计行数
wc -l file
#统计单词数
wc -w file
#统计字符数
wc -c file
#打印最长行长度
wc file -L

3.6.打印目录树

tree  /opt/code/go
#打印文件和目录大小
tree  /opt/code/go -n
#以html的形式生成目录树
tree PATH -H http://localhost -o out.html