按修改日期查找文件并列出相对路径的技术实现问询
解决方案:文件检索与相对路径输出
没问题,这两个需求用Linux的find命令就能轻松搞定,我给你详细说下具体用法:
一、按修改日期查找文件并列出相对目录
find命令自带的时间筛选参数可以精准定位修改过的文件,再配合格式化输出就能得到相对路径:
查找最近N天内修改的文件:比如要找当前目录下最近7天修改过的所有文件,输出相对路径
find . -type f -mtime -7 -printf "%P\n"解释:
.指定检索的起始目录(当前目录)-type f只筛选文件(排除目录)-mtime -7表示修改时间在7天以内的文件(如果是超过30天的文件,用-mtime +30)%P是核心格式化参数,会输出文件相对于起始目录的相对路径(自动去掉开头的./)
查找指定日期范围内修改的文件:比如要找2024年5月1日到5月10日之间修改的文件
find . -type f -newermt 2024-05-01 ! -newermt 2024-05-11 -printf "%P\n"解释:
-newermt 2024-05-01筛选修改时间晚于2024-05-01的文件! -newermt 2024-05-11排除修改时间晚于2024-05-11的文件,这样就精准覆盖了5月1日到10日的范围
二、从指定父目录检索所有文件,输出相对路径
针对你给出的示例(父目录export/home/user/,文件路径export/home/user/workspace/tmp/file1.txt,期望输出workspace/tmp/file1.txt),直接用find配合%P参数就能实现:
find /export/home/user/ -type f -printf "%P\n"
解释:
- 把起始目录指定为你的父目录
/export/home/user/ -type f确保只输出文件(如果需要包含目录,去掉这个参数即可)%P会自动去掉起始目录的前缀,直接输出文件相对于父目录的路径,完全符合你的需求
内容的提问来源于stack exchange,提问作者BibhuP
相关产品推荐
相关产品推荐

