Я хочу удалить определенный файл конфигурации для 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/ имеют несколько подпапок домена.

2 ответа2

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} совпадают, это то, о чем вы спрашиваете, или я упускаю что-то еще, этот вопрос не о регулярных выражениях (регулярные выражения).  Когда * ? и [ (с соответствием ]) используются в командной строке оболочки, они называются символами подстановки.

0

В /home выполните следующую команду

find . -name 'awstats*conf' | xargs rm

Прежде чем передать результат в xargs запустите find . -name 'awstas*.conf , чтобы убедиться, что в нем перечислены только файлы, которые вы хотите удалить. xargs rm только после подтверждения.

Команда find при использовании, как показано выше, будет рекурсивно искать файлы, которые соответствуют указанному регулярному выражению. Для получения дополнительной информации проверьте справочные страницы для поиска и xargs.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .