find / -type f -name "*a"
时间: 2024-04-23 09:22:45 浏览: 152
这是一个 Linux 命令,用于在根目录下查找所有以字母 "a" 结尾的文件。具体解释如下:
- "find" 是查找命令;
- "/" 表示从根目录开始查找;
- "-type f" 表示只查找普通文件,不包括目录、链接等;
- "-name "*a"" 表示查找文件名以 "a" 结尾的文件。其中,"*" 表示任意字符,可以匹配任意文件名前缀。
相关问题
解释以下命令的功能。 sh demo.sh (注:如果命令运行出来的文件夹为空,则直接运行./demo.sh,若报权限不够,则直接使用chmod 777给文件添加权限) ls -ilr ./tstdir find ./tstdir -maxdepth 2 -name "*.txt" find ./tstdir -links 2 find ./tstdir -gid $UID find ./tstdir -type l find ./tstdir -size 1k find ./tstdir -name "t*" -perm -644 find ./tstdir -type f -o -type l find ./tstdir -type f -o -type l -exec ls -l {} \; find ./tstdir ! -name "*.txt"
这些命令的功能分别是:
- sh demo.sh:运行名为 demo.sh 的脚本文件。
- ls -ilr ./tstdir:列出目录 tstdir 中的所有文件和子目录,并显示它们的 inode 号、权限、所有者、大小、日期和名称等信息,以逆序排列。
- find ./tstdir -maxdepth 2 -name "*.txt":在目录 tstdir 中查找所有深度为 2 的子目录和文件,匹配名字为 *.txt 的文件,并列出它们的路径。
- find ./tstdir -links 2:在目录 tstdir 中查找所有硬链接数为 2 的文件或目录,并列出它们的路径。
- find ./tstdir -gid $UID:在目录 tstdir 中查找所有属于当前用户组的文件或目录,并列出它们的路径。
- find ./tstdir -type l:在目录 tstdir 中查找所有符号链接文件,并列出它们的路径。
- find ./tstdir -size 1k:在目录 tstdir 中查找所有大小为 1KB 的文件,并列出它们的路径。
- find ./tstdir -name "t*" -perm -644:在目录 tstdir 中查找所有文件名以 t 开头且权限为 644 的文件,并列出它们的路径。
- find ./tstdir -type f -o -type l:在目录 tstdir 中查找所有普通文件和符号链接文件,并列出它们的路径。
- find ./tstdir -type f -o -type l -exec ls -l {} \;:在目录 tstdir 中查找所有普通文件和符号链接文件,并执行 ls -l 命令以列出它们的详细信息。
- find ./tstdir ! -name "*.txt":在目录 tstdir 中查找所有不以 .txt 结尾的文件或目录,并列出它们的路径。
find /root/app/tcu/data/log/*.log -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/*.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/*.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/*.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/*.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/log/*.log.4 -mtime +2 -type f |xargs -i gzip {} # /root/app/tcu/data/ccuLog find /root/app/tcu/data/ccuLog/*.log -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/*.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/*.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/*.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/*.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/tcu/data/ccuLog/*.log.4 -mtime +2 -type f |xargs -i gzip {} # /root/app/remote/data/log find /root/app/remote/data/log/*.log -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/*.log.0 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/*.log.1 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/*.log.2 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/*.log.3 -mtime +2 -type f |xargs -i gzip {} find /root/app/remote/data/log/*.log.4 -mtime +2 -type f |xargs -i gzip {} 改成循环语句,文件夹内的.gz文件不进行压缩
好的,我可以帮你改成循环语句。可以使用以下脚本:
```
#!/bin/bash
DIRECTORIES=("/root/app/tcu/data/log" "/root/app/tcu/data/ccuLog" "/root/app/remote/data/log")
for DIR in "${DIRECTORIES[@]}"
do
find "$DIR" -type f -name '*.log*' ! -name '*.gz' ! -type l -mtime +2 | while read FILE
do
gzip "$FILE"
done
done
```
这个脚本会循环处理 `DIRECTORIES` 数组中指定的目录,对每个目录下的满足条件的文件进行处理。`find` 命令会查找文件名符合 `*.log*` 并且不以 `.gz` 结尾的普通文件(排除软链接),且最后修改时间在两天以前的文件。这些文件会被传递给 `while` 循环逐个处理,即使用 `gzip` 压缩这些文件。已经是 `.gz` 后缀的文件不会被处理。
阅读全文