Удалите файлы на основе года

На самом деле это использует то, что указано в MANPAGER или PAGER переменная среды.

В зависимости от Вашего man реализация и версия там могли быть также переключателем командной строки для определения пейджера.

С реализацией дб человека я использую весь ниже путей работа:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Для установки его постоянно просто добавьте его к Вашему ~/.bashrc (или другой файл инициализации, используемый Вашей оболочкой):

export MANPAGER=cat

Это работает с некоторыми более старыми man реализации также, в то время как MANOPT конкретный дб человека:

export MANOPT='-P cat'

(Лучше не устанавливайте PAGER тот путь. Тот используется многими другими приложениями также.)

Мог быть также глобальный конфигурационный файл. дб человека имеет /etc/man_db.conf или /etc/manpath.config. Там можно установить:

DEFINE    pager    cat

Но к сожалению который взят в соображении только если ни один MANPAGER ни PAGER установлен.

5
21.07.2011, 18:25
3 ответа

Другие сказали find но можно также хотеть проверить tmpwatch.

1
27.01.2020, 20:35

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

Если у Вас есть последняя версия GNU, находят (например, на Linux или Cygwin) или FreeBSD или OSX, можно непосредственно сравнить дату файла с тем из другого файла. Кроме того, эти версии находки могут использовать время создания файла (названный его временем рождения, указанным с a B) если это доступно в Вашей системе. Замена B m ниже для использования времени изменения, а не времени рождения.

find /path/to/directory -newerBt '2009-01-01' ! -newerBt '2010-01-01' -type f -delete

Выполните его однажды без -delete сначала для проверки это файлы, которые Вы хотите. Команда выше также удалит файлы в подкаталогах; если это не желаемо, добавить -mindepth 1 -maxdepth 1 после имени каталога.

Если Ваша версия find не имеет -newerXY основной, необходимо будет создать файлы метки времени для маркировки границ диапазона времен, которым Вы хотите соответствовать.

touch -t 200901010000 /tmp/from
touch -t 201001010000 /tmp/to
find /path/to/directory -newer /tmp/from ! -newer /tmp/to -type f -exec rm {} +

Спецификаторы шарика Zsh могут соответствовать файлам во временном интервале, но границы могут только быть обозначены относительно текущей даты (например, дни несколько N назад).

rm /path/to/directory/*(.m+566^m+931)

Можно также использовать файлы метки времени для точных дат, но Вы проигрываете в краткости.

touch -t 200901010000 /tmp/from
touch -t 201001010000 /tmp/to
rm /path/to/directory/*(.e\''[[ $REPLY -nt /tmp/from && $REPLY -ot /tmp/to ]]'\')
9
27.01.2020, 20:35

find команда, с надлежащими опциями должна смочь сделать точно, что Вы хотите.

Так как Вы формулировали свой вопрос в значительной степени как присвоение домашней работы, я собираюсь оставить полное чтение страницы руководства как осуществление для хорошо осведомленного; это учебное руководство, предоставленное @jfgagne, должно помочь вполне немного.

0
27.01.2020, 20:35
  • 1
    порядка аргумента 'ctime' не время создания файла, это - прошлый раз inode измененная структура. Таким образом, это будет обновлено, когда полномочия файла или владение будут изменены. См. это учебное руководство для большего количества информационных –  jfg956 21.07.2011, 17:49
  • 2
    Возгласов, моего плохого. Исправленный мой ответ и добавил Ваше учебное руководство - Спасибо!, –  Shadur 21.07.2011, 17:57

Теги

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