Как перечислить каталоги, которые не являются символьные связанный с в каталоге?

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

  • Предположение паролей
  • Вторжение в код веб-приложения
  • Вторжение в рабочую станцию разработчика, и или получение пароля FTP оттуда или изменение локальной версии сайта

2
задан 13 April 2017 в 15:14
2 ответа

Этот отрывок Bash найдет каталоги, которые не имеют никаких каталогов, связанных с ними. Это также найдет неработающие ссылки.

for f in *; do (($(find -L -maxdepth 1 -samefile "$f" 2>/dev/null | wc -l) == 1)) && echo "found: $f"; done

Это не смотрит вне текущего каталога или в подкаталогах.

Обязательно протестируйте его полностью.

1
ответ дан 3 December 2019 в 13:22

Как, упомянутый вопрос, на который ссылаются, нет официального способа сделать это. Как альтернатива опции Dennis, я представляю следующий ужасный взлом. Обязательно протестируйте полностью также. Я рекомендовал бы заменить -exec часть с ls пока Вы не уверены, что это работает.

touch current;find . -maxdepth 1 -type d -mmin +2 -exec rm -rf {} \;

Это проверит текущий каталог только. Это по существу касается каталога, связанного 'текущим', и затем удаляет что-либо с изменить временем, более старым, чем две минуты. Если другие каталоги не были затронуты в некоторое время, можно увеличить таймер на -mmin, таким образом, Вы случайно не уничтожаете каталог, Вы хотите. Это очевидно только жизнеспособно, если Вы не возражаете изменять метку времени на текущем каталоге.


- Christopher Karel

0
ответ дан 3 December 2019 в 13:22

Теги

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