Remoção de arquivos e diretórios
O comando rm
remove arquivos, por padrão, rm
não remove diretórios.
Você pode usar o comando rm -r
ou a opção --recursive
para habilitar o comando de excluir diretórios e seu conteúdo.
Nota
O comando
rm -r
percorre cada subdiretório primeiro, removendo individualmente seus arquivos antes de remover cada diretório.
No exemplo a seguir, o comando rm
exclui o arquivo thesis_chapter1.txt
sem opções, mas para excluir o diretório Thesis/Chapter1
, você deve adicionar a opção -r
.
[user@host Documents]$ ls -l Thesis/Chapter1
-rw-r--r--. 1 user user 7100 Mar 7 14:37 thesis_chapter1.txt
[user@host Documents]$ rm Thesis/Chapter1/thesis_chapter1.txt
[user@host Documents]$ rm Thesis/Chapter1
rm: cannot remove 'Thesis/Chapter1': Is a directory
[user@host Documents]$ rm -r Thesis/Chapter1
[user@host Documents]$ ls -l Thesis
drwxr-xr-x. 2 user user 6 Mar 7 12:37 Chapter2
drwxr-xr-x. 2 user user 6 Mar 7 12:37 Chapter3
O Red Hat Enterprise Linux não existe um recurso de cancelamento de exclusão na linha de comando ou uma Lixeira da qual restaurar arquivos suspensos para exclusão. Uma lixeira é um componente de um ambiente de área de trabalho como o GNOME, mas não é usado por comandos executados em um shell.
É uma boa ideia verificar seu diretório de trabalho atual antes de remover um arquivo ou diretório usando caminhos relativos.
[user@host Documents]$ pwd
/home/user/Documents
[user@host Documents]$ ls -l thesis*
-rw-r--r--. 1 user user 11431 Mar 7 14:39 thesis_chapter2_reviewed.txt
[user@host Documents]$ rm thesis_chapter2_reviewed.txt
[user@host Documents]$ ls -l thesis*
ls: cannot access 'thesis*': No such file or directory
Você pode usar a opção -i
do comando rm
para solicitar interativamente a confirmação antes da exclusão. Já a opção -f
força a remoção sem solicitar a confirmação do usuário.
Nota
Se você especificar as opções
-i
e-f
, a opção-f
tem prioridade e você não será solicitado para confirmação antes que rm exclua arquivos.
[user@host Documents]$ rm -ri Thesis
rm: descend into directory 'Thesis'? y
rm: descend into directory 'Thesis/Chapter2'? y
rm: remove regular empty file 'Thesis/Chapter2/thesis_chapter2.txt'? y
rm: remove directory 'Thesis/Chapter2'? y
rm: remove directory 'Thesis/Chapter3'? y
rm: remove directory 'Thesis'? y
Você também pode usar o comando rmdir
para remover diretórios vazios. Use a opção -r
do comando rm
para excluir diretórios não vazios.
[user@host Documents]$ pwd
/home/user/Documents
[user@host Documents]$ rmdir ProjectZ
[user@host Documents]$ rmdir ProjectX
rmdir: failed to remove 'ProjectX': Directory not empty
[user@host Documents]$ rm -r ProjectX
[user@host Documents]$