bash: после тестирования mtime по символической ссылке мне нужно удалить саму символическую ссылку, а не целевой файл - PullRequest
2 голосов
/ 26 февраля 2011

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

#!/bin/bash

source="/media/public/"
dest="/pool/new/"

if [[ ! -d $dest ]]; then
    exit 1
fi

if [ `hostname` == "punk" ] && [ `uname -o` == "GNU/Linux" ]; then
    #rm -f $dest/*
    find -L $dest -mtime 14 -type f -exec echo "delete symlink: " {} \;
    find -L $source -mtime -14 -type f -exec ln -s -t $dest {} \;
fi

Прямо сейчас первая команда find удалит цель, а не символическую ссылку.

1 Ответ

1 голос
/ 26 февраля 2011

Использование просто

-exec rm {} +

rm удалит саму ссылку, а не цель.

...