shell编程——文件操作

文件操作非常常见,比如log日志查看,读写删除等。

  • Linux常见用法格式 删除7天前文件

find path -option [ -print ] [ -exec -ok command ] {} \;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
find 命令参数:
path: 查找路径 .当前目录 /系统根目录
-exec:对匹配的文件执行该参数,相应形式为'-exec command {} \;'
-ok: 和-exec 作用相同,区别是-ok更安全,执行命令前都会有提示 是否执行。
-print: 将查找的文件输出到标准输出
例如:'结果|xargs 命令' -->xargs将结果放到后面的命令里
==================================================================
[find 目录 -name filename]
-perm 755 #按执行权限来查找
-user username # 按文件属主查找 -group 按组
-mtime -n/+n #-n指n天以内,+n指n天前
-atime -n/+n #按文件访问时间来查
-ctime -n/+n #按文件创建时间来查 -1一天之内
-nogroup #按无效属组 来查 -nouser
-newer f1 !f2 #查找更改时间比f1新比f2旧的文件
-type b/d/c/p/l/f #查找块设备/目录/字符设备/管道/符号链接/普通文件
-prune #忽略某个目录
-ftype vfat #查文件类型
===================================================================
find ~ -name "*.txt*" -print #在$HOME中查txt文件并显示 .当前目录
find . -name "[A-Z]*" -print #查大写字母开头的文件 "host*"host开头
find /etc -name "[a-z][a-z][0-9].txt" #查以两个小写字母和一个数字开头的txt文件
find . ! -type d -print #查不是目录的数据
find . -name "yao*"|xargs echo "">/core.log #将查出结果写入log文件
find /home -mmin +60 #在/home下查60分钟前修改过的文件 -60
find /home -atime -1 #查1天之内被存取过的文件 -amin分钟内访问过的
find /home -empty #查找大小为0的文件或空目录
find /home -size +512k #查大于512k的文件 -512K
find /home -links +2 #查硬连接数大于2的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
  • 通过$n形式的参数
param description
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
× 请我吃大餐~
打赏二维码