Использование подстановочных знаков для поиска (и удаления) соответствующих файлов на компьютере с Linux

Использование подстановочных знаков для поиска (и удаления) соответствующих файлов на компьютере с Linux

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

Связанный контент