Intereting Posts
Слияние двух файлов с разницей Как заставить systemd создать монтируемое подключение при подключении автоматически подключаемого диска? Когда ntp обновит время Возможно ли в Linux отключить кэширование файловой системы для определенных файлов? Как определить выход меню GRUB2 Использование клавиш яркости / громкости в tty / виртуальной консоли? java-плагин не работает в Chrome-браузере (все возможные попытки исчерпаны) Рекурсивно создавать каталоги для всех букв Почему на виртуальных машинах не существует /etc/udev/rules.d/70-persistent-net.rules? Phpmyadmin может получить доступ с любого логина и пароля vsftpd доступ к /srv/www/domain.com/somedir настроен на Fedora 22 – настройка различных политик alpm для определенных устройств tcplay: невозможно смонтировать файловую систему на томе TrueCrypt с защитой скрытого объема после сопоставления поменять местами бит в linux Как запустить приложение в качестве док-станции в openbox

Переименование файлов в bash-скрипте на основе даты изменения файла

Прошло некоторое время с тех пор, как мне пришлось вбивать скрипты в оболочку. Тем не менее, у меня есть сценарий оболочки, где я переименовываю файлы на основе расширения файла из загрузки FTP.

В настоящее время файлы загружаются на сервер через процесс FTP. Все файлы переименованы из filename.txt в filename.dat . Что я хотел бы сделать, это переименовать файлы только на основе даты изменения файла через определенное количество минут.

то есть все файлы, время модификации которых превышает пять (5) минут.
-mtime -5.

Ниже мой сценарий оболочки:

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

Вам нужно +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