Como excluir arquivos no diretório

0

Eu tenho que excluir um arquivo específico em cada diretório.

Exemplo: MKRUW, DKRUW, TKRUW Em cada um desses diretórios eu preciso digitar MKRUW / default / file e deletar arquivos .dat.

    
por vamsi krishna 15.07.2016 / 15:59

2 respostas

1

Eu assumo que MKRUW , DKRUW , etc. são diretórios. Vá para o diretório pai de cada um desses diretórios e tente:

find . -name '*.dat'

Se você estiver satisfeito com a lista de arquivos .dat encontrados e desejar continuar com a exclusão deles, execute a mesma pesquisa novamente, mas com argumentos adicionais para remover os arquivos:

find . -name '*.dat' -exec rm -f {} \;

Claro, você está livre para alterar *.dat para algo menos geral. Por exemplo, se você deseja remover apenas arquivos com o nome info.dat , use find . -name 'info.dat' .

    
por 15.07.2016 / 16:06
1

Assumindo que MKRUW , DKRUW , TKRUW são diretórios e que dentro de cada um deles, você deseja excluir arquivos correspondentes a default/file/*.dat e que você está executando um shell razoavelmente moderno, você pode usar:

echo {MKRUW,DKRUW,TKRUW}/default/file/*.dat

para obter uma lista dos nomes dos arquivos em questão.

Quando estiver satisfeito com a lista que deseja excluir, basta substituir rm por echo :

rm {MKRUW,DKRUW,TKRUW}/default/file/*.dat

Isso funciona porque {...,...,...} é expandido pelo shell (quase da mesma maneira que *.dat ), explodindo o argumento em um número maior de argumentos, um para cada entrada correspondente. Esses argumentos são então passados para o comando, que nos casos acima são echo e rm , respectivamente. Portanto, o comando rm acima é equivalente, mas requer muito menos digitação do que:

rm MKRUW/default/file/*.dat DKRUW/default/file/*.dat TKRUW/default/file/*.dat
    
por 15.07.2016 / 16:24

Tags