Noções básicas sobre o comando rm

0

Eu tenho usado o servidor Ubuntu em casa por um tempo agora, e tenho notado que tenho alguns furos no meu conhecimento do bash e, em geral, várias ferramentas perigosas como o rm.

É a primeira vez em minha vida que eu usei o rm para deletar algo que eu não pretendia ...

pwd : /media/storage/vod e ls : css html series music movies

sudo rm *.QTFS
sudo rm -rf *.QTFS

Qual é a diferença entre esses dois acima? Eu tenho nome de arquivo especificado. Então, a recursão irá procurar dentro de todos os subdiretórios para * .QTFS ou apenas dentro do diretório atual (vod)? Eu imagino mais tarde ... então neste caso a bandeira de recursão não faz nada, correto?

sudo rm -R *.QTFS series/*

Este foi o meu comando de desfazer. De qualquer forma, então neste caso eu apenas dei rm dois comandos de exclusão separados, correto?

primeiro exclua recursivamente * .QTFS, mas esta parte só procura dentro do diretório atual (vod). Segundo exclui recursivamente o conteúdo do diretório de séries.

Essencialmente eu estou tentando entender se eu deletei algo além do dano óbvio.

    
por Radu Rădeanu 02.09.2014 / 06:57

2 respostas

1

Tanto -r como -R são aliases para --recursive , que a página do manual descreve como:

% bl0ck_qu0te%

Se você fizer rm -r file1 file2 , a opção será passada para os dois arquivos. Como a recursão aplica-se apenas aos diretórios (você não pode agir recursivamente em um único nível), isso faria pouco mais do que excluir os dois arquivos.

Se você usar rm -r folder1 folder2 , ele excluirá recursivamente tudo dentro dessas pastas e das próprias pastas.

No que diz respeito à forma como funciona a expansão de nomes de caracteres , * significa qualquer número de caracteres, então *.QTFS significa qualquer arquivo em $PWD terminando com .QTFS e service/* significa qualquer arquivo dentro da pasta $PWD/service .

Dito isto, desde que seja o que você queria excluir, você deve estar bem.

Use -i ou --interactive para forçar rm a solicitar confirmação a cada remoção, ou -I ou --interactive=once perguntar uma vez se seu comando remover quatro ou mais arquivos ou remover arquivos recursivamente .

Use -f ou --force para fazer com que rm silenciosamente ignore arquivos inexistentes e não solicite confirmação antes de remover um arquivo ou diretório somente leitura.

Você pode querer olhar em trash se você quiser um undelete de tipos de comando. Ele interage com a lixeira, oferecendo a você a opção de ter um substituto, se necessário.

    
por wxl 02.09.2014 / 08:19
0
    O
  1. switch "r" é usado para permitir que o comando rm exclua as pastas, inclusive os arquivos contidos nele.
  2. A opção "f" é instruir o rm a forçar a exclusão completa do arquivo. Neste caso, se o arquivo ou pasta não existir, o comando rm não fornecerá nenhuma mensagem de erro.
por Shajahan 02.09.2014 / 07:32