%20arquivos%20correspondentes%20em%20uma%20caixa%20Linux.png)
Quero excluir um arquivo de configuração específico do Awstats para cada usuário da caixa. Qual é a melhor maneira de excluí-los e, possivelmente, em uma linha?
Todos os arquivos estão abaixo /home
e possuem esta estrutura:
/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
Algumas /home/{username}/domains/
pastas possuem várias subpastas de domínio.
Responder1
Você tentou
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
Atenção: se houver um arquivo cujo nome seja algo como
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
ou seja, as duas ocorrências de {domain1}
não correspondem, então o comando acima irá excluí-lo também. Isso é um problema?
PS A menos que você esteja perguntando se as duas ocorrências de {domain1}
correspondência são o que você está perguntando, ou se há algo mais que está faltando, esta pergunta não é sobre expressões regulares (regexs). Quando *
, ?
, e [
(com uma correspondência ]
) são usados na linha de comando do shell, eles são chamadoscuringas.
Responder2
Em /home
execute o seguinte comando
find . -name 'awstats*conf' | xargs rm
Antes de canalizar o resultado, xargs
execute-o find . -name 'awstas*.conf
sozinho para verificar se ele lista apenas os arquivos que você deseja remover. Canalize para xargs rm
somente depois de confirmar isso.
O find
quando usado conforme mostrado acima procurará recursivamente por arquivos que correspondam ao regex especificado. Para obter mais informações, verifique as páginas de manual de find e xargs.