Exclua arquivos com o mesmo nome no final do arquivo

1

Exclua arquivos com o mesmo nome no final do arquivo

eu tenho muitos arquivos na minha pasta e subdiretórios como

ajax_hostel_room_master.php.php          class_hostel_registration.php.php
ajax_hostel_room_master.php.php.php      class_hostel_registration.php.php.php
ajax_hostel_room_shifting.php            class_hostel_room_allocation.php
ajax_hostel_room_shifting.php.php        class_hostel_room_allocation.php.php
ajax_hostel_room_shifting.php.php.php    class_hostel_room_allocation.php.php.php

Eu quero manter o filename.php e deletar os outros arquivos como filename.php.php

    
por Danny 20.03.2014 / 09:55

3 respostas

4

rm -- *.php.php isto irá deletar todos os arquivos que possuam mais de uma extensão php

para todos os subdiretórios necessários

find /scripts/tmp -name "*.php.php" -exec rm {} +

/scripts/tmp é o diretório sob o qual meus arquivos e subdiretórios existiam

    
por 20.03.2014 / 10:02
4

Para combinar extensões repetidas, com zsh :

rm -- *.*.*(e{'[[ $REPLY:t =~ "(\..*)$" ]]'})

Recursivamente:

rm -- **/*.*.*(e{'[[ $REPLY:t =~ "(\..*)$" ]]'})

Isso corresponderia a a.php.php e b.x.x e c.x.y.x.y (e .php.php ).

com ksh93 :

rm -- *@(.*)

Recursivamente:

set -o globstar
rm -- **/*@(.*)

Com o GNU find , de forma recursiva:

find . -regex '.*\(\.[^/]*\)' -exec rm {} +
    
por 20.03.2014 / 10:57
1

Tente isso na raiz do diretório onde deseja excluir os arquivos:

find . -name "*.php.php*" -exec rm '{}' \;
    
por 20.03.2014 / 10:10