Contagem de arquivos apagados com rm interativo (rm -i)

2

Eu quero contar o número de arquivos e diretórios interativamente removidos:

for f in /tmp/mydir/* ; do
  rm -ir "$f"
done

Como fazer isso da maneira mais concisa e elegante?

Exemplo:

abc@def:/tmp/mydir$ tree
.
├── 1
├── 2
├── 3
├── 4
├── A
│   ├── 1
│   ├── 2
│   └── 3
├── B
│   ├── 1
│   └── 2
└── C

3 directories, 9 files

Se todas as respostas forem y (yes), então espero resposta:

  • 7 (contagem: 1 , 2 , 3 , 4 , A , B , C ) ou:
  • 10 (contagem: 1 , 2 , 3 , 4 , A/1 , A/2 , A/3 , B/1 , B/2 , C ).

Ambas as versões são bem vindas.

Eu sei que posso contar arquivos / diretórios antes e depois da execução do rm interativo, mas esse não é o caso, porque na verdade eu faço uma iteração nos arquivos armazenados no arquivo de texto.

    
por patryk.beza 13.08.2015 / 14:31

1 resposta

4

simplesmente use:

rm -vri files | wc -l

incluirá dirs, também (isto é, a remoção de A ). Isso funcionará, pois -v enviará somente a saída removed ’file’ (ou dir) com êxito para stdout , enquanto todos os outros vão para stderr .

No seu exemplo, a saída será 12 , pois há 3 dirs e 9 arquivos.

    
por 13.08.2015 / 14:55