linux常用命令(关于cat find )基本用法
2018-12-24 本文已影响148人
Prince_wyf
cat
cat 命令常用读取,显示或者拼接文件内容,不过cat的魅力不仅如此,接下来你将会看到关于cat的基本和高级用法 。
- 最简单的用法
cat file.txt
This is file.txt
- 打印多个文件的内容
cat file1 file2 file3
This is file1.txt
This is file2.txt
This is file3.txt
- 摆脱多余的空行
cat file1.txt
This is file1.txt
aaaaa
bbbbb
用法 cat -s file1 # 有多处连续的空白行会只显示一处
This is file1.txt
aaaaa
bbbbb
4.显示行号
cat -n file
cat -n line.txt
1 lin1
2 lin2
3 lin3
- cat 重定向,在Linux shell 脚本中经常会见到的
<<EOF
(内容)
EOF
# 注意 EOF 是“end of file”,表示文本结束符,在这里完全可以使用其他字符替代例如:END FOE 等等
例子:
cat <<END>>file.txt
username=wangwu
age=19
END
结果: # 在以前文件的基础上追加了两行信息,亦可以使用 > 清空原文件后再添加
This is file1.txt
aaaaa
bbbbb
username=wangwu
age=19
find
find 几乎是Linux 中最棒的工具之一,它通常用于文件的查找,find 命令工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应操作。
1. 列出当前目录及子目录下所有的文件和文件夹
find path
eg: find . -print
# 在Linux中 . 表示当前目录, .. 表示父级目录,print 指明打印出匹配的文件名(路径),不加print 也同样会打印
2. 根据文件名或正则表达式进行搜索
(1) -name
eg: find . -name *.sh
# 表示查找当前目录下以 sh 结尾的文件, * 表示通配符
补充: -iname 可以忽略大小写字母搜素
(2) -path
find / -path "*/test/*"
结果:
/usr/lib64/python2.6/site-packages/OpenSSL/test/util.pyc
/usr/lib64/python2.6/site-packages/OpenSSL/test/test_ssl.pyc
/usr/lib64/python2.6/site-packages/OpenSSL/test/test_crypto.pyc
/usr/lib64/python2.6/site-packages/OpenSSL/test/__init__.py
#-name 是以给定的文件名 进行匹配,-path 是将文件路径作为一个整体进行匹配
(3) -regex
find . -regex ".*sh$"
# 利用正则匹配以sh结尾的文件,同样 -iregex 可以忽略大小写
3. 否定参数
find . ! -name "*.sh"
# 匹配当前目录下不是以 ,sh 结尾的文件
4. 根据文件类型搜索
Linux 系统一切皆文件 ,所以我们就可以利用文件类型来对文件进行搜索
find . -type d # 列出当前目录下所有目录
find -type f # 列出当前目录下所有文件
5. 根据文件时间进行搜索
# 找出在7天内被访问过的文件
find . -type f -atime -7
# 找出在刚好7天前被访问过的文件
find . -type f -atime -7
# 找出访问时间超过7天的文件
find . -type f -atime +7
atime 最后一次访问时间,
ctime 最后一次状态修改时间
mtime 最后一次内容修改时间
# 注意这些都是基于时间的参数并且计量单位都是天
6. 基于文件大小进行搜索
# 查找大于2kb 的文件
find . -type f -size +2k
# 查找小于2kb 的文件
find . -type f -size -2k
7. 删除匹配的文件
find . -type f -name ".swp" -delete
# 删除当前目录下所有 .swp 文件
8. 根据文件的所有权进行搜索
find . -type f -user root
# 打印root用户拥有的所有文件
9. 利用find执行命令或动作
find 命令可以借助选项-exec 与其他命令相结合。而 -exec 也是find最为强大的特性之一
eg: find . -type f -user root -name "*.txt" -exec cat {} \;
# 查找出当前目录下所有 .txt 结尾的文件并使用cat查看,{}是一个与-exec 搭配使用的特殊字符串,对于每一个匹配的字符串 {} 都会替换成对应的文件名,例如上面的就可以解释为 find 先找到 root 用户拥有的 test1.txt 和 test2.txt 然后 cat {} 就会被解析成cat test1,txt 和 cat test2.txt