Exclui o arquivo correspondente de todas as subpastas do diretório atual

4

Eu usei este para copiar arquivos em todos os diretórios:

find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess

Agora eu preciso reverter um e excluir o arquivo com o nome correspondente de todos os subdiretórios de um que estou atualmente em

    
por JohXXm2 04.11.2011 / 19:33

3 respostas

4

Se eu entendi sua descrição corretamente, você deseja remover .htaccess dos subdiretórios do diretório atual, mas não de seus subdiretórios. Em outras palavras, você deseja remover foo/.htaccess , mas não foo/bar/.htaccess . Então é simples:

rm */.htaccess

Você poderia ter feito sem find para seu comando inicial. find é mais útil quando você deseja percorrer um diretório recursivamente, ou seja, aplicar aos subdiretórios e subsubdiretórios e assim por diante.

for d in */; do cp -p .htaccess "$d"; done
    
por 04.11.2011 / 21:11
0
find /path/to/dir -name .htaccess -delete
    
por 04.11.2011 / 19:42
0

O seguinte assume que você executou anteriormente o find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess do mesmo diretório em que você executará este:

find . -maxdepth 2 -type f -name .htaccess -exec rm -v {} \;

A opção -v (verbose) é opcional, mas ajuda a ver quais arquivos são realmente excluídos.

    
por 04.11.2011 / 20:04