ファイルの変更日に基づいてbashスクリプトからファイル名を変更する

ファイルの変更日に基づいてbashスクリプトからファイル名を変更する

シェルスクリプトを学び始めたのはかなりです。ただし、FTP経由でアップロードされたファイル拡張子に基づいてファイル名を変更するシェルスクリプトがあります。

現在のファイルはFTPプロセスを介してサーバーにアップロードされます。すべてのファイルの名前が次のように変更されました。ファイル名.txt到着ファイル名.dat。私が望むのは、ファイルの変更日に基づいて特定の時間(分)後にファイル名を変更することだけです。

これは、5分以上前に変更されたすべてのファイルです。
-m時間-5。

以下は私のシェルスクリプトです。

#!/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

おすすめ記事