1 find
- 用法
find命令用于在指定目录及其子目录中搜索文件,并根据指定的条件来定位文件
find [搜索路径] [匹配条件] [动作]
find . -type f -name "*.txt"
- . 表示当前目录。如搜索当前目录文件可以省略
- -type f 表示要匹配的是文件(而不是目录)
- -name “*.txt” 表示文件名以".txt"结尾
find 举例
- 查找当前目录下所有后缀为 .txt 的文件
find . -type f -name "*.txt"
-
-type f:匹配普通文件
-
-type d:匹配目录
-
-type l:匹配符号链接
-
-type c:匹配字符设备文件
-
-type b:匹配块设备文件
-
-type p:匹配命名管道(FIFO)
-
-type s:匹配套接字文件
-
查找当前目录下所有以小写字母开头的文件
find . -type f -regex "./[a-z].*"
-
./:表示当前目录。
-
[a-z]:表示第一个字符必须是小写字母
-
.*:表示后面可以有任意数量的任意字符
-
查找在 /tmp 目录下大小等于 1M 的文件
find /tmp -type f -size 1M
-
find /tmp:表示在 /tmp 目录及其子目录中搜索
-
-size 1M:表示查找文件大小等于 1 兆字节的文件
-
查找在 /bin 目录下大小 大于 1M 的文件,小于是-1M
find /tmp -type f -size +1M
- 查找当前目录下大于 2k,小于 2M 的文件
find . -type f -size +2k -size -2M
- 查找当前目录下权限为 777 的文件或目录
find . -perm 777
- 查找当前目录下空文件夹并删除
find -type d -empty | xargs -n 1 rm -rf
- 查找当前目录下0字节文件并删除
find . -name "*" -type f -size 0c | xargs -n 1 rm -rf
-
-name “*”:表示匹配所有文件名。
-
-size 0c:表示查找大小为0字节的文件。
-
xargs:从标准输入中读取参数列表并将其作为参数传递给指定命令。
-
-n 1:表示每次传递一个参数给rm -rf命令。
-
rm -rf:表示强制递归删除文件或目录,无需提示确认。
-
查找当前目录以及子目录下所有tar.gz文件并解压
find . -type f -name "*.tar.gz" -exec tar -xzvf {} \;
-exec tar -xzvf {} ;:对找到的每个.tar.gz文件执行tar -xzvf命令进行解压。
- tar:是用于解压文件的命令。
- -x:表示解压文件。
- -z: 表示使用gzip解压。
- -v:表示显示详细信息。
- -f {}:指定要解压的文件, {} 会被实际的文件名替换。
- ;:表示命令结束。
另外一种写法;
find . -type f -name "*.tar.gz" | xargs -I {} tar -xzvf {}
不递归子目录,仅操作当前目录
find . -maxdepth 1 -type f -name "*.tar.gz" | xargs -I {} tar -xzvf {}
find . -maxdepth 1 -type f -name “*.tar.gz”:表示在当前目录下最大深度为1(不包括子目录)查找.tar.gz文件
2 ls
ls是一个常用的命令,用于列出指定目录中的文件和子目录。ls的基本语法如下:
ls [选项] [文件或目录]
常用的选项包括:
-
-l:以长格式(long format)显示文件和目录的详细信息,包括权限、所有者、大小、日期和时间等。
-
-a:显示所有文件和目录,包括以"."开头的隐藏文件。
-
-h:以人类可读的格式显示文件大小,例如K、M、G等。
-
-r:逆序显示文件和目录。
-
-t:按修改时间排序,最新修改的文件或目录在前面。
示例用法:
- ls:列出当前目录下的所有文件和子目录。
- ls -l:以长格式显示当前目录下的所有文件和子目录的详细信息。
- ls -a:显示当前目录下的所有文件和子目录,包括隐藏文件。
- ls -l -h:以长格式并以人类可读的格式显示当前目录下的所有文件和子目录的详细信息。
- ls /path/to/directory:列出指定路径下的所有文件和子目录。