我已经有一段时间没有开始学习 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
你需要+5
5分钟以上。
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