根据文件修改日期在 bash 脚本中重命名文件

根据文件修改日期在 bash 脚本中重命名文件

我已经有一段时间没有开始学习 shell 脚本了。但是,我有一个 shell 脚本,可以根据 ftp 上传的文件扩展名重命名文件。

目前,文件通过 FTP 进程上传到服务器。所有文件均重命名为文件名.txt文件名.dat。我想做的只是在一定分钟后根据文件的修改日期重命名文件。

即修改时间超过五 (5) 分钟的所有文件。
-mtime -5。

下面是我的 shell 脚本:

#!/bin/bash
for name in /u/easy/ep2/data/download/*.txt; do
    newname=${name%.txt}.log
    mv "$name" "$newname"
done

答案1

你需要+55分钟以上。

find /u/easy/ep2/data/download -maxdepth 1 -name '*.txt' -mtime +5 \
    -exec sh -c 'mv "$1" "${1%.txt}.log"' arg0ignored {} \;

编辑

例子:

$ find /tmp -maxdepth 1 -name '*.txt' -mtime +5 -exec sh -c 'echo mv "$1" "${1%.txt}.log"' x0 '{}' \;
mv /tmp/1.txt /tmp/1.log
mv /tmp/2.txt /tmp/2.log

相关内容