find命令
find命令用于查找文件,可按名称,类型,大小,修改时间等
-name name 或 -iname name : 文件名称符合name的文件,iname会忽略大小写;
-path p 或 -ipath p : 路径名称符合p的文件,ipath会忽略大小写;
-empty : 空的文件
-gid n 或者 -group name : gid是n或者group名称是name;
-type c : 文件类型是c的文件; d:目录; f:一般文件;
-ctime n : 过去n天修改过的文件
-cnewer file : 比文件file更新的文件
-cmin n : 过去n分钟内被修改过的文件
-atime n : 过去n天读取过的文件
-anewer file : 比文件file更晚被读取过的文件
-amin n : 过去n分钟内被读取过的文件
可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
exp1 -or exp2
! expr
-not expr
exp1, exp2
例子:
find ./ -name "*.sh" #查找当前目录下所有.sh结尾的文件
find ./ -type f #查找所有一般文件
find ./ -ctime -20 #查找近20天内有更新的文件
find ./ -atime -20 #查找近20天内被读取的文件
find ./ -cmin -10 #查找10分钟内被更新过的文件
find /var/logs -type f -ctime +7 -exec rm {} \; #查找/var/logs目录中更改时间在7日以前的普通文件
find / -size 0 -exec ls -l {} \; #为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
file命令
Linux file命令用于辨识文件类型
file install.log
install.log: UTF-8 Unicode text
ln命令
创建文件软链接或者硬链接
硬链接(hard link)与软链接(symbolic link)介绍,硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统;
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁盘空间;
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
创建软链接
ln -s log2013.log link2013
创建硬链接
ln log2013.log ln2013
sort命令
文件排序
选项:
-o 输出到某个文件
-u 去重
-n 数值排序
-k 第几列
-t 根据什么分隔,\t时需要特殊处理 $'\t'
-r 倒序
sort -nrk 3 -t: sort.txt #根据第三列数值倒序排列,列用:分隔;
sort -t $'\t' -k2n feed_u_cost.txt #根据第二列数值正序排列,列用\t分隔;
uniq命令
文件去重,uniq的输入必须是排序后的文件
-c 统计出现次数;
-d 只显示重复行
-u 只显示出现一次的行
tmp.txt示例如下:
a 100
b 200
c 300
d 400
e 250
b 200
sort tmp.txt | uniq -c
1 a 100
2 b 200
1 c 300
1 d 400
1 e 250
sort tmp.txt | uniq #去重
a 100
b 200
c 300
d 400
e 250
sort tmp.txt | uniq -d #只显示重复行
b 200
sort tmp.txt | uniq -u #只显示出现一次的行
a 100
c 300
d 400
e 250
let命令
let用于执行一个或者多个表达式,变量不需要加上$
no=10
let no++
let no--
let a=5+4