“rm -rf $ dir” alguma vez retorna falso?

0

Eu escrevi a seguinte linha de código para excluir o conteúdo de um diretório.

rm -rf $dir && mkdir -p $dir

No entanto, isso não funcionará se a primeira instrução falhar. Retorna alguma vez 1?

    
por nithinj 12.12.2016 / 17:54

2 respostas

2

Claro, se alguma parte da exclusão violar as permissões. Por exemplo

$ mkdir -p p/q
$ sudo chown root p p/q
$ sudo chmod 700 p p/q
$ rm -rf p
rm: cannot remove 'p': Permission denied
$ echo $?
1

Note, no entanto, que você pode remover um diretório que não é seu em um diretório que seja. Então, o acima não falharia se eu apenas tentasse com p sem o "conteúdo".

    
por 12.12.2016 / 18:03
2

Sim, se você não tiver permissão para remover $dir , o rm falhará, com -r , presumo que ele falhará se nada puder ser excluído.

Por exemplo,

$ mkdir test_dir
$ sudo chown root.root test_dir
$ cd test_dir # we no longer have write permission to .
$ sudo mkdir new_dir
$ rm -rf new_dir
rm: cannot remove 'new_dir': Permission denied
$ echo $?
1
    
por 12.12.2016 / 18:00