Shell命令-文件及目录操作之cp、find
文件及目录操作 - cp、find
1、cp:复制文件或目录
cp命令的功能说明
cp命令用于复制文件或目录。
cp命令的语法格式
cp[OPTION]... SOURCE... DIRECTORY
cp[参数选项] [源文件或源目录] [目标文件或目录]
cp命令的选项说明
cp选项就几个,表1为cp命令的参数及说明:
表1:
cp命令的参数及说明
| 参数选项 | 解释说明(带*的为重点) |
|---|---|
| -r | 复制目录 * |
| -p | 保持文件或目录属性 |
| -a | 相当于同时使用参数-d,-p,-r * |
| -i | 提示是否覆盖的确认 |
| -d | 如果复制的源文件为链接文件,仅复制符号链接本身,且保留符号链接所指向的目标文件或目录 |
cp命令的实践操作
范例1: 无参数和带参数
-a的比较
[root@oldboyedu /test]# pwd
/test
[root@oldboyedu /test]# ll -h
total 0
drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 6 08:26 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[root@oldboyedu /test]# cp file1.txt file4.txt
[root@oldboyedu /test]# cp -a file1.txt file5.txt
[root@oldboyedu /test]# ll -h
total 0
drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 6 08:26 file1.txt <-->源文件的属性
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
-rw-r--r-- 1 root root 0 Apr 6 08:27 file4.txt <-->没加参数的文件属性
-rw-r--r-- 1 root root 0 Apr 6 08:26 file5.txt <-->加了参数的文件属性
范例2: 使用
-i参数的例子
[root@oldboyedu /test]# cp -i file1.txt file5.txt <-->提示是否覆盖文件?
cp: overwrite ‘file5.txt’? n
[root@oldboyedu /test]# cp file1.txt file5.txt <-->没加 -i 为啥也提示?
cp: overwrite ‘file5.txt’? n
[root@oldboyedu /test]# alias cp <-->因为系统为cp做了别名
alias cp='cp -i'
[root@oldboyedu /test]# \cp file1.txt file5.txt <-->取消别名(或提示)方法1:在前面加\
[root@oldboyedu /test]# /bin/cp file1.txt file5.txt <-->取消别名(或提示)方法2:使用命令的绝对路径
范例3: 使用
-r参数复制目录
[root@oldboyedu /test]# tree dir1 dir2 <-->看一下dir1和dir2目录内容
dir1 <--> dir1目录的内容
└── sub1
└── test
dir2 <--> dir2目录的内容
2 directories, 0 files
[root@oldboyedu /test]# cp dir1 dir2 <-->显示跳过目录dir1
cp: omitting directory ‘dir1’
[root@oldboyedu /test]# cp -r dir1 dir2 <--> 使用 -r 参数
[root@oldboyedu /test]# tree dir1 dir2 <-->查看结果
dir1 <--> dir1目录的内容
└── sub1
└── test
dir2 <--> dir2目录的内容(连目录dir1本身也复制过来了)
└── dir1
└── sub1
└── test
5 directories, 0 files
范例4: 快速备份文件案例
[root@oldboyedu /test]# cp /etc/ssh/ssh_config /etc/ssh/sshd_config.ori <-->正常备份
[root@oldboyedu /test]# cp /etc/ssh/ssh_config{,.ori} <-->快速备份
2、find:查找目录下的文件或查找目录
find命令的功能说明
find命令用于查找目录下的文件或查找目录,同时可以调用其他命令执行相应的操作。
find命令的语法格式
find[-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find[选项] [路径] [操作语句]
find命令的选项说明
find选项很多,表1为find命令的常用的参数及说明:
表1:
find命令的参数及说明(还有很多参数,不再列举)
| 参数选项 | 解释说明 |
|---|---|
| -name | 按文件名查询 |
| -type | f查找文件;d查找目录 |
| -exec | 对查找的结果再处理 |
| -mtime | -n查找更改时间距现在n(正整数)天以内;+n查找更改时间距现在n(正整数)天以前;n查找更改时间距现在n(正整数) |
| -perm | 按照文件的权限来查找文件 |
| -size | 以文件大小查找 |
| -path | 指定路径样式,配合-prune参数排除指定目录 |
| ! | 表示取反 |
| -a | 表示取交集 |
| -o | 取并集 |
find命令的实践操作
范例1: 查找指定时间内修改过的文件
[root@oldboyedu /test]# find . -atime -1 <--> . 表示当前,查找2天内被访问的文件
.
./file1.txt
./dir1
./dir1/sub1
./dir1/sub1/test
./file4.txt
./file5.txt
./dir2
./dir2/dir1
./dir2/dir1/sub1
./dir2/dir1/sub1/test
[root@oldboyedu /test]# find /test/ -mtime -5 <-->使用绝对路径,查找5天内被修改的文件
/test/
/test/file1.txt
/test/file2.txt
/test/file3.txt
/test/dir1
/test/dir1/sub1
/test/dir1/sub1/test
/test/dir3
/test/.file4.txt
/test/file4.txt
/test/file5.txt
/test/dir2
/test/dir2/dir1
/test/dir2/dir1/sub1
/test/dir2/dir1/sub1/test
范例2: 用
-name指定关键字查找
[root@oldboyedu /test]# find /var/log/ -mtime +5 -name '*.log' <-->在/var/log/目录下查找5天以前.log结尾的文件
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
/var/log/anaconda/ifcfg.log
/var/log/anaconda/ks-script-klS0RP.log
/var/log/anaconda/journal.log
/var/log/vmware-network.8.log
/var/log/vmware-network.9.log
范例3: 利用
!反向查找
[root@oldboyedu /test]# find . -type d
.
./dir1
./dir1/sub1
./dir1/sub1/test
./dir3
./dir2
./dir2/dir1
./dir2/dir1/sub1
./dir2/dir1/sub1/test
[root@oldboyedu /test]# find . ! -type d <-->! 表示取反,查找不是目录的文件,注意感叹号的位置
./file1.txt
./file2.txt
./file3.txt
./.file4.txt
./file4.txt
./file5.txt
范例4: 按照目录或文件的权限来查找文件
[root@oldboyedu /test]# find /test -perm 755 <-->755是权限的数字表示方式
/test
/test/dir1
/test/dir1/sub1
/test/dir1/sub1/test
/test/dir3
/test/dir2
/test/dir2/dir1
/test/dir2/dir1/sub1
/test/dir2/dir1/sub1/test
范例5: 按大小查找文件
[root@oldboyedu /test]# find . -size +10c <-->查找当前目录下大于10字节的文件
.
./dir1
./dir1/sub1
./dir2
./dir2/dir1
./dir2/dir1/sub1
范例6: 查找文件时希望忽略某个目录
[root@oldboyedu /test]# find /test -path "/test/dir1" -prune -o -print <-->排除指定目录
/test
/test/file1.txt
/test/file2.txt
/test/file3.txt
/test/dir3
/test/.file4.txt
/test/file4.txt
/test/file5.txt
/test/dir2
/test/dir2/dir1
/test/dir2/dir1/sub1
/test/dir2/dir1/sub1/test
范例6: 忽略多个目录(了解即可)
[root@oldboyedu /test]# find /test \( -path /test/dir2 -o -path /test/dir3 \) -prune -o -print <-->注意括号的空格
/test
/test/file1.txt
/test/file2.txt
/test/file3.txt
/test/dir1
/test/dir1/sub1
/test/dir1/sub1/test
/test/.file4.txt
/test/file4.txt
/test/file5.txt
范例7:
ls -l命令放在find命令的-exec选项中执行
[root@oldboyedu /test]# find . -type f -exec ls -l {} \; <-->最后以分号作为结束标志,考虑不同意义,所以要转义加\
-rw-r--r-- 1 root root 0 Apr 6 08:26 ./file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 ./file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 ./file3.txt
-rw-r--r-- 1 root root 0 Apr 4 15:01 ./.file4.txt
-rw-r--r-- 1 root root 0 Apr 6 08:27 ./file4.txt
-rw-r--r-- 1 root root 0 Apr 6 08:39 ./file5.txt
范例8:
ls -l命令放在find命令的xargs选项中执行
[root@oldboyedu /test]# find . -type f |xargs ls -l <-->xargs是一个命令,后续会讲
-rw-r--r-- 1 root root 0 Apr 6 08:26 ./file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 ./file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 ./file3.txt
-rw-r--r-- 1 root root 0 Apr 4 15:01 ./.file4.txt
-rw-r--r-- 1 root root 0 Apr 6 08:27 ./file4.txt
-rw-r--r-- 1 root root 0 Apr 6 08:39 ./file5.txt
范例9: 使用
xargs执行mv(移动文件或目录)命令例子
[root@oldboyedu /test]# ls
dir1 dir2 dir3 file1.txt file2.txt file3.txt file4.txt file5.txt
[root@oldboyedu /test]# ls dir3
[root@oldboyedu /test]# find . -name "*.txt"|xargs -i mv {} dir3/ <-->使用 -i 参数使得 { } 代表find查找到的文件
[root@oldboyedu /test]# ls
dir1 dir2 dir3
[root@oldboyedu /test]# ls dir3
file1.txt file2.txt file3.txt file4.txt file5.txt
今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津
Shell命令-文件及目录操作之cp、find的更多相关文章
- Shell命令-文件及目录操作之chattr、lsattr
文件及目录操作 - chattr.lsattr 1. chattr:改变文件属性 chattr命令的功能说明 chattr命令用于改变文件属性.这项指令可改变存放在ext2文件系统上的文件或目录属性, ...
- Shell命令-文件及目录操作之file、md5sum
文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file ...
- Shell命令-文件及目录操作之ls、cd
文件及目录操作 - ls.cd 1.ls:列出目录的内容及其内容属性信息 ls命令的功能说明 ls命令用于列出目录的内容及其内容属性信息. ls命令的语法格式 ls [OPTION]... [FILE ...
- Shell命令-文件及目录操作之mkdir、mv
文件及目录操作 - mkdir.mv 1.mkdir:创建目录 mkdir命令的功能说明 mkdir命令用于创建目录,默认情况下,要创建的目录已存在,会提示文件存在,不会继续创建目录. mkdir命令 ...
- Shell命令-文件及目录操作之pwd、rm
文件及目录操作 - pwd.rm 1.pwd:显示当前所在位置信息 pwd命令的功能说明 pwd命令用于显示当前工作目录的绝对路径,以便在各个目录间来回切换. pwd命令的语法格式 pwd [OPTI ...
- Shell命令-文件及目录操作之touch、tree
文件及目录操作 - touch.tree 1.touch:创建文件或更改文件时间戳 touch命令的功能说明 touch命令用于创建新的空文件或改变已有文件的时间戳属性. touch命令的语法格式 t ...
- shell 命令 文件查看ls,复制cp,移动mv,查看文件内容cat more less,查看文件信息 file
1. 查看文件 ls ls -l 查看文件详细信息 ls -a 查看所有文件(包含隐藏文件) ls -lh 带单位显示文件大小 ls -i 查看文件的节点号(相当身份证唯一) 2 ...
- Linux操作系统常用命令合集——第一篇-文件和目录操作(40个命令)
一.选项和参数的区别 在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选项”(英文名:options)或“参数” ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
随机推荐
- Java开发笔记(七十)Java8新增的几种泛型接口
由于泛型存在某种不确定的类型,因此很少直接运用于拿来即用的泛型类,它更经常以泛型接口的面目出现.例如几种基本的容器类型Set.Map.List都被定义为接口interface,像HashSet.Tre ...
- ssm基础搭建步骤
今天搭建新的项目环境,从网上找了些ssm的搭建步骤,终于找到了一位csdn的大佬,可以说写的特别详细,按照上面步骤搭建即可,为了方便日后参考,转载到本人博客,原文链接:https://blog.csd ...
- 【20190129】CSS-垂直水平居中相关
元素居中是HTML和CSS永恒的问题,记录一下我使用的居中方法: 1. 块状元素水平居中,主要用于页面整体布局: margin: 0 auto; 2. 文字水平居中,适用于内联元素或inline- ...
- 阿里云服务器部署Office online注意事项
阿里云服务器部署Office online注意事项 一.参考配置 实例规格:4核8GB(IO优化) 网络带宽:5Mbps 系统盘:40G 存储盘:200G OS:Windows Server 2016 ...
- 转摘app-稳定性测试
稳定性测试的概念有2种, 一, 稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试.包含: 1 交互性测试,被打扰的情况,如来电,短信,低电量等.这些其实在上章的功能测试中有提到. 2 ...
- nginx配置静态项目
当nignx可以加载下面的这个service时 server { listen 8085; server_name 1.192.60.82; location / { root /etc/nginx ...
- 一文把samba相关的都说清楚
1.前言 samba源码都一样,配置也也一样,各个不同linux版本,唯一不同的是对服务的启动方式不同.下面以ubuntu14.4为例,说明. 2. 安装samba samba的安装,可以源码安装,大 ...
- web 项目运用通用的xml配置
jdk10的转换: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncod ...
- 对java中的equals()方法的总结
Java的基础学习总结--equals方法 一,等于方法介绍 1.1.通过下面的例子掌握等于的用法 1 package cn.galc.test; 2 3 public class TestEqual ...
- OKR源自德鲁克和格鲁夫,跟谷歌是天作之合:4星|《这就是OKR》
这就是OKR,[美]约翰杜尔(John Doerr),中信出版社,9787508696881 作者以实习生的身份加入英特尔,跟格鲁夫有交集,见证了格鲁夫在英特尔创立OKR的过程和英特尔使用OKR作为管 ...