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

文件及目录操作 - 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

1535493-20190630165410773-1140966284.gif

1535493-20190630165411182-344059691.jpg

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

1535493-20190630165420289-486657344.gif

1535493-20190630165425297-1016940732.jpg

范例3:使用 -r 参数复制目录
tree dir1 dir2    <-->看一下dir1和dir2目录内容
cp dir1 dir2   <-->显示跳过目录dir1
cp -r dir1 dir2   <--> 使用 -r 参数 
tree dir1 dir2   <-->查看结果

1535493-20190630165451898-193272446.gif

1535493-20190630165456995-1000671327.jpg

范例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

1535493-20190630165508528-1027967053.gif

1535493-20190630165517545-1834574185.png

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按文件名查询
-typef查找文件;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天内被修改的文件

1535493-20190630165532257-1952434108.gif

1535493-20190630165535922-1455434268.jpg

范例2:用 -name 指定关键字查找
find /var/log/ -mtime +5 -name '*.log'   <-->在/var/log/目录下查找5天以前.log结尾的文件

1535493-20190630165544936-326764108.gif

1535493-20190630165549858-183169241.jpg

范例3:利用 ! 反向查找
find . -type d 
find . ! -type d   <-->! 表示取反,查找不是目录的文件,注意感叹号的位置

1535493-20190630165559922-1696554794.gif

1535493-20190630165606557-1203563173.jpg

范例4:按照目录或文件的权限来查找文件
find /test -perm 755    <-->755是权限的数字表示方式

1535493-20190630165616081-810164012.gif

1535493-20190630165621780-873782126.jpg

范例5:按大小查找文件
find . -size +10c  <-->查找当前目录下大于10字节的文件

1535493-20190630165633777-1571243832.gif

1535493-20190630165639635-1179985336.png

范例6:查找文件时希望忽略某个目录
find /test -path "/test/dir1" -prune -o -print  <-->排除指定目录

1535493-20190630165648467-1897345518.gif

1535493-20190630165658655-1244886549.jpg

范例7:忽略多个目录(了解即可)
find /test \( -path /test/dir2 -o -path /test/dir3 \) -prune -o -print   <-->注意括号的空格

1535493-20190630165712356-21772876.gif

1535493-20190630165722576-1021897435.jpg

范例8:ls -l 命令放在 find 命令的 -exec 选项中执行
find . -type f -exec ls -l {} \;      <-->最后以分号作为结束标志,考虑不同意义,所以要转义加\

1535493-20190630165731516-778806116.gif

1535493-20190630165738490-1073345537.jpg

范例9:ls -l 命令放在 find命令的 xargs选项中执行
find . -type f |xargs ls -l   <-->xargs是一个命令,后续会讲

1535493-20190630165748862-1348103666.gif

1535493-20190630165752900-2027267341.png

范例10:使用 xargs 执行 mv(移动文件或目录)命令例子
ls
ls dir3
find . -name "file*"|xargs -i mv {} dir3/    <-->使用 -i 参数使得 { } 代表find查找到的文件
ls
ls dir3

1535493-20190630165822026-1857441750.gif

1535493-20190630165830262-1211798441.jpg

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

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

转载于:https://www.cnblogs.com/wjcLinux/p/10659753.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值