Как удалить файлы в зависимости от их использования?

Как я могу использовать скрипт для удаления файлов в зависимости от того, сколько я их использую?

В каталоге находится большое количество файлов. Я хотел бы сохранить такие файлы, которые я использую (открываю) очень часто. Я хотел бы удалить те, которые я не использовал в определенный период.

3
задан 14.05.2020, 11:21

1 ответ

Вы захотите использовать свойство метки времени на рассматриваемых файлах. Я рекомендовал бы писать простой сценарий в ударе что-то вроде этого:

#!/bin/bash
for i in `ls -1 *.log`
  do
    myfile=`ls -l $i | awk '{print $6,$7,$9}'`
    if [[ ${myfile% *} = 'Jan 1' ]];
    then
      echo "Removing ${myfile##* }"
      #rm ${myfile##* }
    else
      echo "Failed to remove file ${myfile##* }"
    fi
done

Дают ему попытку. Если этот сценарий дает Вам, что Вы ищете, то просто удаляют "#" символ перед командой RM для выполнения операции удаления.

0
ответ дан 14.05.2020, 11:21
  • 1
    Спасибо. Что такое составляют 6$, 7$, средние 9$? – Ravi Babu Narukulla 14.05.2020, 11:22
  • 2
    Почему не просто используют find ... -ctime ..., как @PrathuBaronia предполагают ниже? – Philipp Kief 14.05.2020, 11:22
  • 3
    Downvoted, так как это анализирует ls команда. Это - плохая практика. Читайте mywiki.wooledge.org/ParsingLs – Codingale 14.05.2020, 11:22
  • 4
    Они представляют столбцы данных. В этом случае, 6-й, 7-й и 9-й столбец вывода ' ls' команда. Here' s ссылка, которая могла бы помочь для ссылки: thegeekstuff.com/2010/01/… – Rahul Sonone 14.05.2020, 11:23

Теги

Похожие вопросы