С моей точки зрения, есть как минимум 3 способа решить ваш вопрос:
Не используйте учетную запись root в первую очередь. Действительно. Настроить отдельно только vim для root и все. sudo
- ваш лучший друг. В качестве бонуса вы улучшили ведение журнала всех ваших корневых действий и всей истории команд в одном месте. Можно комбинировать с опцией 2.
Поместите всю вашу конфигурацию в доступный или что-то подобное. Настройте его для развертывания в / root и в домашнем каталоге пользователя. Если вам нужно что-то изменить, просто измените проект конфигурации и разверните. Он будет развернут сразу во всех каталогах. В качестве бонуса у вас есть вся конфигурация в одном месте, которую можно легко расширить для любого количества пользователей. Если вы поместите его в git или другую VCS, у вас будет хорошая история изменений. Кроме того, его можно легко перенести на новую машину. Можно комбинировать с вариантом 1. Я считаю, что это будет лучшее решение.
Честно говоря, мне не нравится это решение, хотя оно очень простое. Так что все же стоит упомянуть. Сделайте задание cron, чтобы скопировать всю конфигурацию из / root / в дом вашего пользователя (перезаписать файлы и каталоги, если они существуют). Не настраивайте его наоборот, так как это будет крайне плохо для вашей безопасности (даже если вы единственный пользователь машины). Кто знает, что умеет скачивать ваш браузер?
Я предположил, что когда вы сказали X дней меньше, чем сегодня, вы имели в виду файлы "старше 5 дней". Если вы имеете в виду файлы ровно 5 дней, то приведенный ниже скрипт нужно будет изменить, чтобы опустить отметку времени, а -lt можно заменить на -eq
#!/bin/bash
CUTOFF=$(date +%s -d "5 days ago")
while read p; do
time=$(echo $p | awk -F'[ ,]' '{print $2" "$3}')
epoch_time=$(date --date="$time" +%s)
if [ $epoch_time -lt $CUTOFF ]; then
echo $p
fi;
done <response.txt
Приведенный выше скрипт загружает файл response.txt и перебирает каждую строку в файле. Awk разбирает по пробелам и запятым в отдельные колонки, а затем печатает дату и время. После этого (вероятно, это можно сделать в той же строке), он преобразует дату/время в эпохальное время в секундах. После этого просто сравнивается время отсечки в секундах с временем файла с помощью оператора if.
Вышеописанное выведет только файлы старше 5 дней.