目录
文件与内容查找
功能项 | 命令实例 | 作用 |
---|---|---|
find | find 起始目录 查找类型 查找条件 | 查找起始目录及所有子目录下的文件及文件夹 |
find . -name "hello.txt" | 查找当前目录下文件名为hello.txt的文件或文件夹 | |
find . -name "se*" | 查找当前目录下文件名由se开始的文件或文件夹 | |
find /home -name "bash" | 查找目录/home下文件名包含bash的文件或文件夹 | |
find . -name "*" | 查找当前目录下的所有文件或文件夹(作用同ls -R) | |
find . -name "[h]*" | 查找当前目录下以h开头的文件或文件夹 | |
find . -name "[h|f]*" | 查找当前目录下所有以h或f开头的文件或文件夹, | 可以不用 | |
find . -name "[a-z]*" | 查找当前目录下所有以小写字母开头的文件或文件夹 | |
find . -name "[A-Z]*" | 查找当前目录下所有以大写字母开头的文件或文件夹 | |
find . -name "[a-Z]*" | 吉找当前目录下所有以字母开头的文件或文件夹 | |
find . -name "[h-w]*" | 查找当前目录下所有以字母h-w开头的文件或文件夹 | |
find . -name "[0-9]*" | 查找当前目录下所有以数字开头的文件或文件夹 | |
find . -name "[5-8]*" | 查找当前目录下所有以数字5-8开头的文件或文件夹 | |
find . -name "h?llo*" | 查找当前目录下所有以h后面带一个字符再加llo开头的文件或文件夹 | |
find . -name "[ ^ a-h]*" | 查找当前目录下所有不以a-h开头的文件或文件夹 | |
find . -name ' \\ ' | 查找当前目录下所有包合特殊字符\的文件(注意使用单引号)两个 \\ 反斜杠,第一个反斜杠表示转义第二个反斜杠,第二个反斜杠表示要查找的目标特殊字符 | |
find . -perm 777 | 查找当前目录下权限为777的文件或文件夹 | |
find . -path "./test" -prune -o -name "hello" | 肯找当前目录下除test目录的其他所有目录中包合hello的文件或文件夹 | |
find . -user mary | 查找当前目录下文件所有者为mary的文件或文件夹 | |
find .-group dev | 查找当前目录下文件或文件夹所在组为dev的内容 | |
find . -mtime -3 | 查找当前目录下在3天内更新过的文件或文件夹 | |
find . -mtime +3 | 查找当前目录下在3天前更新过的文件或文件夹 | |
find . -newer hello.txt | 查找当前目录下比hello.txt新的文件或文件夹 | |
find . ! -newer hello.txt | 肯找当前目录下比hello.txt 旧的文件或文件夹 | |
find . -type d | 查找当前目录下所有的文件夹(普通文件的类型为f,了解Linux文件类型: 1)f: 普通文件,如文本文件,可执行文件 2) d: 目录 3)l: 软链接文件 4)c: 字符设备,如终端,磁带机等 5) b: 块设备,如光盘,硬盘等 | |
find . -type l | 吉找当前目录下所有的软链接文件 | |
find . -size 602c | 查找当前目录下文件大小为602字节的文件,可用单位为: c byte,k-Kilobytes,M - Megabytes, G-Gigabytes | |
find . -size +602c | 查找当前目录下文件大小大于602字节的文件(用-表明小于) | |
find . -name "hello*" -exec ls -l {} \; | 查找当前目录下所有以hello开头的文件并将其细节显示出来,如果查找出了目录,那么此时要注意目录中的内容会被列出来 | |
find . -name "hello*" -exec rm {} \; | 查找当前目录下所有以hello开头的文件并将其别除 | |
find . -name "hello*" | xargs ls -l | 查找当前目录下所有以hello开头的文件和文件夹并将其细节显示出来 | |
linux中的 | | 管道符,前面这条命令的输出参数,作为后面那条命令的输入参数 | |
find . -name "*[h]" | 以h结尾的,和上面相反 |
这两组命令是等同的
二、文件内容查看
功能项 | 命令实例 | 作用 |
---|---|---|
grep | grep [选项] 匹配模式 目标文件 | 基于对目标文件的内容查找 |
grep "root" /etc/passwd | 查找到/etc/passwd文件中包含root的行 | |
grep -n "root" /etc/passwd | 查找到/etc/passwd文件中包含root的行并输出行号 | |
grep -n "^ma" /etc/passwd | 查找以ma为行首的行并输出行号 | |
grep "bash$" /etc/passwd | 查找以bash为行尾的行 | |
grep "^[r|d]" /etc/passwd | 查找以r或d为行首的行 | |
grep -v "内容" | 排除包含“内容”的行 | |
ls | grep test | 从Is的输出中过滤出包含test的文件名 | |
grep -r games /etc | 在/etc目录下查找所有包含games的文件 | |
grep "^sy .* login$" ./passwd | 在passwd目录中查找以sy开头,并以login结尾的行 | |
find 与 grep 结合 | find ./ -name "*" | xargs grep word | 遍历查找某个目录下的所有文件中哪个包含word字符串的文件,与上一条命令的功能类似 这里如果不加 xargs ,那么grep word的对象就变成了find ./ -name "*" 输出的内容,只有加上才是从输出的文件里面去查找 word xargs的意思就是将前面输出的内容作为后面语句的参数,x表示可执行的,args表示参数的意思 |
wc | wc -l | 统计文件行数或输出的个数, -c或-bvtes或--chars 只显示Bytes数。 -l或--lines 显示行数。 -w或--words 只显示字数,如果不指定参数,则统计所有信息 |
三、文件的归档和压缩
功能项 | 命令实例 | 作用 |
---|---|---|
tar / gzip | tar 参数 生成的归档文件 被归档的文件 | |
tar -cvf hello.tar hello.txt | 将hello.txt归档并命名成hello.tar | |
tar -cvf test.rar /opt/test | 将目录/opt/test归档并命名成test.tar | |
tar -tf test.tar | 将归档文件test.tar中的文件显示出来 | |
tar -xvf test.tar | 提取归档文件中的内容 | |
gzip | gzip 参数 被操作缩的文件 | |
gzip hello.tar | 将归档文件hello.tar压缩成hello.tar.gz | |
gzip -d hello.tar.gz | 解压缩文件成hello.tar | |
tar -zcvf hello.tar.gz hello.txt | 将hello.txt归档并压缩成hello.tar.gz | |
tar -zxvf hello.tar.gz | 解压缩 | |
zip/unzip | zip hello.zip hello.txt | 将hello.txt压缩并命名成hello.zip |
zip -r test.zip /opt/test | 将/opt/test目录压缩 | |
unzip -v hello.zip | 查看压缩文件hello.zip中的文件信息 | |
unzip hello.zip | 解压缩hello.zip | |