O comando 'rm' do AIX não possui parâmetro '-v' para saída detalhada

2

O comando AIX rm não possui o parâmetro -v para saída detalhada, conforme declarado por Documentação da IBM .

Normalmente eu corro (no linux)

rm -rfv <myfile>

para ( r ) ecursivamente e ( f ) orcably exclui arquivos e obtém a saída detalhada.

Como só posso executar no AIX:

rm -rf <myfile>

Como posso obter a saída detalhada ecoada no terminal?

    
por DogEatDog 27.11.2013 / 17:53

4 respostas

2

find myfile -depth -exec sh -c 'for f do
  rm -rf -- "$f" && printf "Removed ‘%s’\n" "$f"
  done' sh {} +

Ou:

find myfile -depth -exec rm -rf -- {} \; \
                   -exec printf "Removed ‘%s’\n" {} \;

pode ser um começo.

Se você tiver acesso ao GNU find , possivelmente como gfind ou como /opt/gnu/bin/find :

gfind myfile -delete -printf 'Removed ‘%p’\n'

seria muito mais eficiente, pois não executaria um (ou mais) comando por arquivo como os outros.

Mas se você tiver gfind , também poderá ter grm ...

    
por 28.11.2013 / 22:54
2

A opção rm -e do AIX é análoga ao rm do% co do% do GNU, da página -v :

-e
    Displays a message after each file is deleted.

Usar produz este resultado:

# rm -e test.txt
rm: Removing test.txt
    
por 03.11.2014 / 23:56
1

Crie rm em uma função adicionando isto ao arquivo de inicialização do seu shell (assumindo uma sintaxe parecida com a Bourne):

vrm() {
  for f do
    rm -- "$f" && printf 'Deleted %s\n' "$f"
  done
}

Você pode chamá-lo como vrm foo bar baz .

    
por 27.11.2013 / 18:22
-2

porque @terdon perdeu o sinalizador -r:

#!/bin/bash
vrrm(){
    for f in "$@"; do
        if [ -d "$f" ]; then
            gfind "$f" -type f -print0|tee >(gxargs -0 rm) |gxargs -0 echo -- removing file
            gfind "$f" -depth -type d -print0|tee >(gxargs -0 rmdir)|gxargs -0 echo -- removing directory
        else
            rm "$f" && echo Deleted $f
        fi
    done
}
    
por 27.11.2013 / 18:54

Tags