工作生活linux基础命令

Shell命令-文件及目录操作之cp、find

2019-06-30  本文已影响0人  MineG

文件及目录操作 - cp、find

1、cp:复制文件或目录

1.1 cp命令的功能说明

cp命令用于复制文件或目录。

1.2 cp命令的语法格式

cp  [OPTION]... SOURCE... DIRECTORY
cp  [参数选项]  [源文件或源目录]  [目标文件或目录]

1.3 cp命令的选项说明

表1: cp命令的参数及说明

参数选项 解释说明(带※的为重点)
-r 复制目录 ※
-p 保持文件或目录属性
-a 相当于同时使用参数-d,-p,-r ※
-i 提示是否覆盖的确认
-d 如果复制的源文件为链接文件,仅复制符号链接本身,且保留符号链接所指向的目标文件或目录

1.4 cp命令的实践操作

范例1:无参数和带参数 -a 的比较

提示:实验环境见《Shell命令-文件及目录操作之ls、cd》点我快速打开文章

cd /test
pwd
ll -h
cp file1 file4
cp -a file1 file5
ll -h
image image

范例2:使用 -i 参数的例子

cp -i file1 file5 <-->提示是否覆盖文件?
cp file1 file5<-->没加 -i 为啥也提示?
alias cp  <-->因为系统为cp做了别名
\cp file1 file5    <-->取消别名(或提示)方法1:在前面加\
/bin/cp file1 file5  <-->取消别名(或提示)方法2:使用命令的绝对路径
image image

范例3:使用 -r 参数复制目录

tree dir1 dir2    <-->看一下dir1和dir2目录内容
cp dir1 dir2   <-->显示跳过目录dir1
cp -r dir1 dir2   <--> 使用 -r 参数 
tree dir1 dir2   <-->查看结果
image image

范例4:快速备份文件案例

ls /etc/ssh/|grep config
cp /etc/ssh/ssh_config /etc/ssh/sshd_config.ori    <-->正常备份
cp /etc/ssh/sshd_config{,.ori}     <-->快速备份
ls /etc/ssh/|grep config
image image

2、find:查找目录下的文件或查找目录

2.1 find命令的功能说明

find命令用于查找目录下的文件或查找目录,同时可以调用其他命令执行相应的操作。

2.2 find命令的语法格式

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find [选项]  [路径]  [操作语句]

2.3 find命令的选项说明

表1: find 命令的参数及说明(还有很多参数,不再列举)

参数选项 解释说明
-name 按文件名查询
-type f查找文件;d查找目录
-exec 对查找的结果再处理
-mtime -n查找更改时间距现在n(正整数)天以内;+n查找更改时间距现在n(正整数)天以前;n查找更改时间距现在n(正整数)
-perm 按照文件的权限来查找文件
-size 以文件大小查找
-path 指定路径样式,配合-prune参数排除指定目录
! 表示取反
-a 表示取交集
-o 取并集

2.4 find命令的实践操作

范例1:查找指定时间内修改过的文件

find . -atime -1   <--> . 表示当前,查找2天内被访问的文件
find /test/ -mtime -5   <-->使用绝对路径,查找5天内被修改的文件
image image

范例2:用 -name 指定关键字查找

find /var/log/ -mtime +5 -name '*.log'   <-->在/var/log/目录下查找5天以前.log结尾的文件
image image

范例3:利用 ! 反向查找

find . -type d 
find . ! -type d   <-->! 表示取反,查找不是目录的文件,注意感叹号的位置
image image

范例4:按照目录或文件的权限来查找文件

find /test -perm 755    <-->755是权限的数字表示方式
image image

范例5:按大小查找文件

find . -size +10c  <-->查找当前目录下大于10字节的文件
image image

范例6:查找文件时希望忽略某个目录

find /test -path "/test/dir1" -prune -o -print  <-->排除指定目录
image image

范例7:忽略多个目录(了解即可)

find /test \( -path /test/dir2 -o -path /test/dir3 \) -prune -o -print   <-->注意括号的空格
image image

范例8:ls -l 命令放在 find 命令的 -exec 选项中执行

find . -type f -exec ls -l {} \;      <-->最后以分号作为结束标志,考虑不同意义,所以要转义加\
image image

范例9:ls -l 命令放在 find命令的 xargs选项中执行

find . -type f |xargs ls -l   <-->xargs是一个命令,后续会讲
image image

范例10:使用 xargs 执行 mv(移动文件或目录)命令例子

ls
ls dir3
find . -name "file*"|xargs -i mv {} dir3/    <-->使用 -i 参数使得 { } 代表find查找到的文件
ls
ls dir3
image image

【本文图片下载地址】【00003】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:jrn3 】

今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!

上一篇 下一篇

猜你喜欢

热点阅读