一:查询最近7天修改的java文件
find ./ -name "*.java" -mtime -7
二:将查询结果打包
find ./ -name "*.java" -mtime -7 -exec zip /tmp/1001java.zip {} +
find ./ -name "*.java" -mtime -7 -print0 | tar -czvf /tmp/1001java.tar.gz --null -T -
这个命令在 /tmp/
目录下创建一个名为 1001java.tar.gz
的压缩文件,并将搜索到的最近7天内修改过的所有Java文件添加到该压缩文件中。
find
命令用于查找最近7天内修改过的所有Java文件,并使用-print0
参数将文件名以 null 字符(’\0’)的形式输出。tar
命令使用-czvf
参数将文件打包为.tar.gz
格式的压缩文件。--null
参数用于在使用-T
参数从标准输入中读取文件名时,将 null 字符作为文件名的分隔符。-T -
参数用于从标准输入中读取文件名,这里使用-
表示将find
命令输出的文件名传递给tar
命令。
你可以根据需要调整压缩文件的路径和名称。
find ./ -name "*.java" -mtime -7 -exec tar -czvf /tmp/1001java.tar.gz {} +
这个命令会将最近7天内修改过的所有Java文件打包并压缩成名为 1001java.tar.gz
的压缩文件,保存在 /tmp/
目录下。
find
命令的-exec
选项用于找到匹配的文件后,直接将文件名传递给后面的tar
命令。tar
命令的-c
参数表示创建新的压缩文件,-z
参数表示以 gzip 格式压缩文件,-v
参数用于显示压缩过程的详细信息,-f
参数用于指定要创建的压缩文件的名称。{} +
是find -exec
选项的一种写法,表示将多个文件名一次性传递给tar
命令以进行打包和压缩。
使用这个简化后的命令,你可以直接打包和压缩最近7天修改过的所有Java文件,无需先使用 find
命令获取文件列表再传递给 tar
命令。
三:解压缩文件
tar -xzvf 1001java.tar.gz
find / -type f -size +100M -exec du -sh {} \;
find /usr/local/project/ -type f -name "*.jar" | xargs rm -rf