Como remover todos os arquivos FIFO com um comando shell

4

Não consigo encontrar um comando shell para remover todos os arquivos FIFO dentro de um diretório. De fato, para a remoção de diretórios, o comando rm oferece as opções -d, --dir , mas para FIFOs não oferece opção.

Por enquanto, a única solução encontrada é chamar o FIFO como foo.fifo , de modo que seja fácil removê-los com rm *.fifo .

    
por Nicola 06.06.2014 / 11:20

3 respostas

8

Para excluir todos os FIFOs no diretório atual e todas as subpastas use

find . -type p -delete

Para excluir FIFOs somente no diretório atual use

find .  -maxdepth 1 -type p -delete
    
por 06.06.2014 / 11:22
1

shell apenas para o diretório atual ...

set -- ./*
for f do
    [ -p "$f" ] && rm "$f"
done
    
por 06.06.2014 / 11:28
0

Tente isto:

find -maxdepth 1 -type p -exec rm {} \;

Manpage de find :

-type c
      File is of type c:

      p      named pipe (FIFO)
    
por 06.06.2014 / 11:24