Как удалить файлы и папки в AIX на основе метки времени модификации? - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно обратиться за помощью к вам со сценарием, работающим в AIX. Я хочу удалить файлы и папки с некоторыми правилами имен по указанному пути.

Например, под путем /usr/upself/test у меня есть 3 файла с именем:

abc.txt  (modified 8 days ago)
abd.txt  (modified 2 days ago)
abcd.txt (modified 2 days ago)

, а также имеет 2 папки с именем:

abcx     (modified 9 days ago)
abc      (modified 2 days ago)

при запуске скрипта будут удалены файлы и папки с именем, содержащим abc, которое было изменено 7 дней назад.

Раньше я запускал скрипт в Linux, как показано ниже, и он работает хорошо:

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
filepath="/usr/upself/test"
cd $filepath

for file in `ls | grep -i abc`
do
 mtime=`stat -c %Y "$filepath$file"`
 curtime=`date +%s`
 gap=$curtime-$mtime

 if [ $[$gap] -gt 604800 ]
 then
  if [ -d $file ]
  then
      rm -r "$file"
  fi
  if [ -f $file ]
  then
      rm -r "$file"
  fi
 fi
done
IFS=$SAVEIFS

Но, к сожалению, мне нужно запустить его в AIX, тогда у нас проблема в том, что в AIX у нас нет команды stat, и он останавливает сценарий, чтобы получить метку времени изменения файлов и папок.

Может кто-нибудь помочь указать, как мне нужно изменить скрипт, чтобы он работал как раньше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...