файлы символьных ссылок, более новые, чем X age, а затем удалить символическую ссылку, как только возраст файлов - PullRequest
2 голосов
/ 02 мая 2010

У меня есть большое количество файлов / папок, приходящих каждый день, которые автоматически сортируются по множеству папок. Я ищу способ автоматического поиска этих файлов / папок и создания символических ссылок на них во «входящей» папке. Поиск возраста файла должен быть достаточным для поиска файлов, однако поиск по возрасту и владельцу был бы идеальным. Затем, когда файлы / папки будут связаны по достижении определенного возраста, скажем, 5 дней, автоматически удалите символические ссылки на них из «входящей» папки. Возможно ли это сделать с помощью простого сценария оболочки или Python, который можно запустить с помощью cron? Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 мая 2010

Используйте incron для создания символической ссылки, затем find -L в cron для ее разрыва.

1 голос
/ 02 мая 2010

Не совсем уверен, что вы хотите символические ссылки на , но вот первый выстрел:

find /incoming -mtime -5 -user nr -exec ln -s '{}' /usr/local/symlinks ';'

Находит что-либо в /incoming, принадлежащем nr, которому менее 5 дней, и связывает его в /usr/local/symlinks. К сожалению, ln не имеет хорошей возможности игнорировать то, что уже существует. Вам лучше написать скрипт, который связывает вещи, и в то же время вы можете сделать вещи намного эффективнее:

find /incoming -mtime -5 -user nr -print0 | xargs -0 mylink

Где mylink имеет

#!/bin/bash
for i
do
  link=/usr/local/symlinks/"$(basename "$i")"
  [[ -L "$link" ]] || ln -s "$i" /usr/local/symlinks
done

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

Чтобы удалить символические ссылки , указывающие на файлы старше 5 дней:

find -L /usr/local/symlinks -mtime +5 -user nr -exec rm '{}' ';'

или снова вы можете использовать xargs:

find -L /usr/local/symlinks -mtime +5 -user nr -print0 | xargs -0 rm -f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...