Linux基础命令之文件和目录操作(二)
. find
用于查找目录下的文件,也可以调用其他命令使用
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find 【选项】 【路径】【操作语句】

options:
-depth # 在指定目录下最深层的子目录开始查找
-maxdept levels # 查找最大目录级数,levels为自然数
-regextype type # 正则表达式类型,默认是emacs,
tests:
-mtime [-n|n|+n] # 按文件的修改时间查找文件 ,单位是“天”
-atime [-n|n|+n] # 按文件的访问时间查找文件
-ctime [-n|n|+n] # 按文件的状态改变时间查找文件
-mmin # 按文件的修改时间查找文件,单位是“分钟”
-amin # 按文件的访问时间查找文件
-cmin # 按文件的状态改变时间查找文件
-group # 按文件所属的组来查找文件
-name # 按文件名查找文件,支持通配符号
-newer # 查找更改时间比指定文件新的文件
-nogroup # 查找的文件所属的组在/etc/groups中不存在
-nouser # 查找文件的数组在/etc/passwd中不存在
-path pattern # 指定路径样式,配合-prune排除指定目录
-perm # 按文件权限来查找文件
-size n[cwbkMG] # 按照文件大小为n来查找,后面接计量单位
-user # 按文件属主来查找文件
-type # 按文件类型查找文件 b,c,d,p,l,f,s,D
actions:
-delete # 将找出的文件删除
-exec # 将查找出的文件交给改参数后面的shell命令运行
-ok # 与-exec用法相同,但是会进行提示
-prune # 不在当前指定的目录进行查找
-print # 默认功能可以省略,将匹配文件输出到标准输出
! # 取反
-a # 取交集,and
-o # 取并集,or
find . -atime -
find /data/ -mtime -
find /var/log/ -mtime + -name '*.log'
find . ! -type d
find /data/ -perm
find . -size +1000c
find /data -path "/data/dir3" -prune -o -print # -a和-o类似“&&”和“||”,为真时,执行-prune;为假时,执行-print
find /data \(-path /data/dir2 -o -path /data/dir3\) -prune -o -print
find . -nouser
find . -group nobody
find . -newer file1.txt # 查找比file1更新的文件
find . -maxdepth -type d
find . -maxdepth -type d ! -name "."
find . -maxdepth -type d ! -name "." -o -name "xiaolizi"
find . -maxdepth -type d ! -name "." -a -name "xiaolizi"
find . -type f -exec ls -l {} \;
find . -type f -mtime + -exec rm {} \;
find . -type f -mtime + -ok rm {} \;
find . -type f -mtime + |xargs ls -l
find . -name "*.txt" |xargs -i mv {} dir2/
find . -name "*.txt" |xargs -i mv -t dir2/
find . -type -f -name "test.txt"|xargs tar zcf xiaolizi.tar.gz # 不能使用-exec
. rename
通过字符串替换的方式批量修改文件名
rename from to file...
from: 需要替换或者需要处理的字符(文件名或者扩展名)
to: 把from代表的内容替换为to代表的内容
file: 待处理的文件,可以用“*”通配所有文件
rename "_finished" "" * # 将所有文件的_finished替换为空
rename .jpg .xiaolizi *.jpg # 将所有文件的.jpg替换为.xiaolizi
. basename
只显示去除绝对路径后的文件名
. dirname
只显示文件的目录名
. chattr
改变文件扩展属性
a # 只能向文件中添加数据,而不能删除,多用于服务器日志安全
i # 设定文件不能被删除,改名,写入或者新增内容, 给文件加锁+i 解锁-i
. lsattr
查看文件扩展属性
. file
显示文件类型
file + filename
. md5sum
用于计算和校验文件的MD5值,是一种不可逆的加密算法
-b # 二进制模式读取文件
-c # 从指定文件中读取md5校验值,并进行校验
-t # 文本模式读取文件,默认模式
--quiet # 校验文件使用的参数,验证通过不输出OK
--status # 校验文件使用参数,不输出任何信息,可以通过命令的返回值来判断
md5sum xiaolizi.txt # 加密文件
md5sum xiaolizi.txt>md5.log # 生成校验文件
md5sum -c md5.log # 检查文件完整性
md5sum --status -c md5.log # 使用"echo $?",来判断是否执行成功 # 服务器备份脚本,使用md5校验数据完整性
#!/bin/bash
# Source function library
./etc/init.d/functions
# Defined variables
IP=$(ifconfig eth1|awk -F '[ :]+' 'NR==2{print $4}')
Path="/data/backup/$IP"
TIME=`/bin/date +%F`
BackupFile=/server/scripts/backuplist
# Judged the exostence of variables
[ ! -d $Path ] && mkdir -p $Path
[ ! -f $BackupFile ] && {
echo "Please give me $BackupFile"
exit 1
}
# Defined result function
function Msg(){
if [ $? -eq 0 ];then
action "$*" /bin/true
else
action "$*" /bin/false
fi
}
# Backuo config files
tar zcfh $Path/conf_${TIME}.tar.gz `cat $BackupFile` &>/dev/null
Msg 'Backup config files'
# Make a flag for backup
find $Path -type f -name "*${TIME}.tar.gz"|xargs md5sum >$Path/flag_${TIME} 2>/dev/null
# 备份成功建立md5sum文件指纹库
Msg 'Make a flag for backup'
# Send backup to backupsever
rsync -az $Path rsync_backup@rsync::backup --password-file=/etc/rsync.password &>/dev/null
Msg 'Send backup to backup server'
# 检查服务器备份情况,邮件通知管理员
#!/bin/bash
DIR=/data/backup
TIME=`/bin/date + %F`
log=/tmp/$TIME-check.log
[ -d $DIR ] && {
find $DIR -type f -name "flag_$TIME"|xargs md5sum -c >$log 2>/dev/null
mail -s "$(date +%F_%T)backup check result" xxxxxx@qq.com <$log
}
# Delete backup a week ago
find $Path -type f -name "*.tar.gz" -mtime +7|xargs rm -f &>/dev/null
Msg 'Delete backup a week ago'
. chown
改变文件或目录的用户和用户组
chown [OPTION]... [OWNER][:[GROUP]] FILE...
被授权的用户,在操作系统中需要先存在
chown oldboy file.txt # 属主会变化
chown .odboy file.txt # 属组会变化
chown root:root file.txt # 同时更改文件所属用户和组属性
或者
chown root.root file.txt
chown -R xiaolizi.xiaolizi file.txt # 递归授权
. chmod
改变文件或者目录权限,但是一般只有root用户或者文件的属组才可以使用
chmod [OPTION]... MODE[,MODE]... FILE...
权限位:
r:读4 w:写2 x:执行1 -:无权限
特殊权限位:
t,T,s,S,X,x
用户类型:
所属用户:u 所属组用户:g 其他用户:o
操作字符:
+加入 -减去 =设置
chmod a= file.txt # 所有权限为空
chmod u+x file.txt
chmod g+w file.txt
chmod o+r file.txt
chmod uf+r,o-r file.txt
chmod u=rwx,g=rx,o=x file.txt
chmod -R /dir/ 递归设置文件权限
. umask
用来定义用户创建文件或目录的默认权限
1.创建文件最大权限为666,但是设置的umask码为022,所以文件权限变为644
但是当文件权限值,减去,umask值,若是期中有数字是奇数,那这个奇数需要+1变成偶数
2.创建目录默认最大权限是777,777-022=755,所以默认创建目录权限是755
3.umask值是由/etc/profile文件中决定的61,69行,具体可以查看代码
Linux基础命令之文件和目录操作(二)的更多相关文章
- Linux基础命令之文件和目录操作(一)
pwd print working directory的缩写,作用是显示当前工作目录的绝对路径,一般进行频繁切换路径时使用. -L 显示逻辑路径(或略软链接文件),不常用. -P 显示物理路径,不常用 ...
- Linux基础命令和文件权限
Linux命令与文件权限 Linux基础命令 reboot 重启 cd 切换目录 cd .. 回到上一级目录 cd ~ 回到主目录 cd / ...
- Linux常用命令之文件和目录处理命令
目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...
- Linux系列教程(四)——Linux常用命令之文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...
- Linux常用命令之文件和目录操作命令
以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ...
- Linux基础知识之文件和目录的权限机制
Linux中的用户 Linux中的用户有三类,分别是: 所有者(u) 同组用户(g) 其他人(o) 如下图所示,假设存在两个组:groupA和groupB,rachel和ross属于组groupA,m ...
- Linux基础学习:文件与目录管理
目录与路径 目录的相关操作 几个特殊的目录: . :表示当前目录 .. :表示上一层目录 - :表示前一个工作目录 ~ :表示当前用户所在的主文件夹 ~account :表示account用户所在的主 ...
- Linux常用命令:文件与目录
目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹 cd ~或者cd,则表示回到自己的的主文件夹 cd -,则表示回到上个目录 pwd:显示目前所在目录 ...
- Linux基础命令之文件过滤及内容编辑处理(二)
. wc 用于统计文件的行数,单词,或字节数 -l # 统计行数 -L # 打印最长行的长度,一般脚本中判断字符长度 -c # 统计字节数 -w # 统计单词数 -m 统计字符数 . iconv 转换 ...
随机推荐
- 跨域调用报表展现页面的flash打印方法
环境说明: 项目的应用和润乾的报表应用分别部署在同一机器不同的web服务器上(IP相同,端口不同,项目的端口8080,报表应用的端口是6868). 在项目中的父页面通过iframe调用报表展现页 ...
- Hibernate 集成 Ehcache 开启二级缓存
一.将 Ehcache.xml 放到 classpath 下 <?xml version="1.0" encoding="UTF-8"?> < ...
- 转: C# 的结构剖析
原文链接:http://www.cnblogs.com/jiajiayuan/archive/2011/09/20/2181582.html 本文意在巩固基础知识,并不是对其进行深入剖析,还望理解.本 ...
- NSOperation的使用细节 [3]
NSOperation的使用细节 [3] 这一节我们来写自定义concurrent的operation,自定义concurrent的operation稍微有点复杂,需要按照某些既定的步骤编写才可以完成 ...
- 封装CoreGraphics的API简化绘图操作
封装CoreGraphics的API简化绘图操作 效果 说明 1. 将CoreGraphics的API接口抽象为对象,让绘图变得简单易懂 2. 简化常用的绘制操作 3. 源码长期更新 源码 https ...
- 裸机恢复 (BMR) 和系统状态恢复
DPM 将系统保护数据源视为两个组成部分 – 裸机恢复 (BMR) 和系统状态保护. BMR 涉及保护操作系统文件和重要卷上的所有数据,用户数据除外. 系统状态保护涉及保护操作系统文件. DPM 使用 ...
- linux 创建新用户并增加管理员权限
1.adduser与useradd有什么区别?2.那种方式会自动创建组.用户组等信息? 3.如何新建用户具有管理员权限? $是普通管员,#是系统管理员,root用户默认是没有密码的,因此也就无法使用( ...
- 北美Developer生存发展攻略
http://www.followmedoit.com/bbs/forum.php?mod=viewthread&tid=49&extra=page%3D1 在北美,做PM不易,而做D ...
- Nginx 泛解析配置请求映射到多端口实现二级域名访问
由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...
- lsync目录文件实时同步工具
参考文档:https://vastxiao.github.io/article/2017/09/02/Linux/lsyncd_usage/ 防止连接丢失,已保存至百度网络-郑州-XXXXX 建议首先 ...