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 -2
find /data/ -mtime -5
find /var/log/ -mtime  +5 -name ‘*.log‘
find . ! -type d
find /data/ -perm 755
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 1 -type d
find . -maxdepth 1 -type d ! -name "."
find . -maxdepth 1 -type d ! -name "." -o -name "xiaolizi"
find . -maxdepth 1 -type d ! -name "." -a -name "xiaolizi"
find . -type f -exec ls -l {} \;
find . -type f -mtime +14 -exec rm {} \;
find . -type f -mtime +14 -ok rm {} \;
find . -type f -mtime +14 |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 [email protected]::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" [email protected] <$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 644 /dir/  递归设置文件权限

. umask

  用来定义用户创建文件或目录的默认权限

   1.创建文件最大权限为666,但是设置的umask码为022,所以文件权限变为644

    但是当文件权限值,减去,umask值,若是期中有数字是奇数,那这个奇数需要+1变成偶数

    

    2.创建目录默认最大权限是777,777-022=755,所以默认创建目录权限是755

    3.umask值是由/etc/profile文件中决定的61,69行,具体可以查看代码

原文地址:https://www.cnblogs.com/flashfish/p/10716681.html

时间: 2024-11-07 03:13:08

Linux基础命令之文件和目录操作(二)的相关文章

linux基础命令-管理文件和目录

今天学习了对Linux命令的理解和Linux系统中对文件和目录进行管理的基础命令. 在Linux系统中需要通过命令来实现某一项功能,Linux命令的执行需要依赖于Shell命令解释器.Shell是在Linux系统中运行的一种特殊程序,Shell解释器位于用户和内核之间,Shell接收到用户的命令并进行解释,然后将需要执行的的操作传递给内核来执行.根据Linux命令和Shell程序的关系,分为内部命令和外部命令. Linux命令对大小写敏感,格式:命令字 [选项] [参数] 以下辅助操作可以提高输

一天一个Linux基础命令删除文件或目录命令rm

rm  删除文件命令 1.命令格式 rm [options]  file... 2.命令功能 rm命令,删除文件命令,是Linux系统下常用命令,该命令的功能为删除一个文件或者整个目录或者目录中的部分文件,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只删除了链接,原有文件保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf或 rm -rf /).所以,我们在执行rm之前最好先确认一下在哪个

【Linux常用命令】文件和目录操作(一)

ls命令 ls命令用来显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出): -A:显示除影藏文件"."和".."以外的所有文件列表: -C:多列显示输出结果.这是默认选项: -l:与"-C"选项功能相反,所有输出信息用单列格式输出,不输出为多列: -F

Linux 常用命令之文件和目录

1. cd 命令格式:cd  [dirName](cd和目录之间使用空格隔开) 作用:切换当前目录至dirName. 实例: cd /home 切换当前目录到/home (查看当前目录命令为pwd) cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd ~ 进入个人的主目录 2. ls 命令格式:ls [选项] [目录名] (目录名为空时表示当前目录) 作用: 查看目录中的文件 常用选项: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -l 除了文件名之外,

Linux常用命令之文件和目录操作命令

以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls *[0-9]* 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构(1)

Linux常用命令(3)-文件和目录管理

(1).Linux 文件权限和目录配置 Linux 文件分三种身份 owner.group.others. 三种权限 read.write.execute #ls -al drwxr-xr-x   1     root   root  4230  2012-09-12 17:21 jdk-7u7 对应文件权限  连接数    用户组  用户 文件大小  最后修改日期      文件名 其中[d] 表示为目录 [-] 表示为文件 文件类型和权限三个为一组,总共三组,其中第一组是文件所有者权限,第二

Linux常用命令:文件与目录

目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 参数: -p,显示当前路径,而非使用连接路径 mkdir:新建新目录 参数: -m:直接配置文件的权限,而不管默认权限umask,比如mkdir -m 711 test1,则test1的权限为711 -p:帮助你直接将所需要的目录递归创建起来,比如mkdir -p test1/test2/test3

一天一个Linux基础命令之文件查看命令more

more:查看文件内容并分屏显示 1.命令格式 more [-d] [-num] [+/pattern] [+linenum] [file...] 2.命令功能 Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h . 3.命令参数 -num:每屏显示几行,默认显示满屏 +num:从num行开始

马哥2016全新Linux+Python高端运维班-Linux基础命令文件管理类及目录创建

周二作业内容: 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理类命令:cp(复制),mv(移动),rm(删除) 1) cp:   cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST 如果目标不存在,新建DEST,并将SRC中的内容填充至DEST 如果目录存在 如果DEST是文件