%20%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D1%85%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B5%20%D1%81%20Linux.png)
Я хочу удалить определенный файл конфигурации для Awstats для каждого пользователя на коробке. Как лучше всего удалить их, и, возможно, в одну строку?
Все файлы находятся ниже /home
и имеют следующую структуру:
/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf
/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
Некоторые /home/{username}/domains/
папки имеют несколько подпапок домена.
решение1
Попытался ли ты
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
Предупреждение: если есть файл с именем вроде
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
т.е. два вхождения {domain1}
не совпадают, то указанная выше команда удалит и его. Это проблема?
PS Если только вы не спрашиваете о проверке того, что два совпадения {domain1}
совпадают, или я что-то еще упускаю, этот вопрос не о регулярных выражениях (regexs). Когда *
, ?
, и [
(с совпадением ]
) используются в командной строке оболочки, они называютсяподстановочные знаки.
решение2
В /home
запустите следующую команду
find . -name 'awstats*conf' | xargs rm
Перед тем как передать результат, xargs
запустите find . -name 'awstas*.conf
сам по себе, чтобы убедиться, что он содержит только те файлы, которые вы хотите удалить. Передавайте xargs rm
только после того, как вы подтвердите, что это так.
При find
использовании, как показано выше, будет рекурсивно искать файлы, соответствующие указанному регулярному выражению. Для получения дополнительной информации проверьте страницы руководства для find и xargs.