Como excluo uma pasta, mas não o conteúdo?

1

Meu diretório (no Linux) se parece com com/com/{various,files} , em que com e com são pastas com o mesmo nome e o segundo com contém os vários arquivos. Eu quero o primeiro com removido, mas o segundo e os arquivos no segundo mantidos.

    
por Bourezg 02.09.2014 / 04:44

3 respostas

2

Renomeie o diretório externo para fora do caminho, mova o diretório interno para o nome desejado e exclua o diretório externo (agora vazio):

$ mv com to-delete
$ mv to-delete/com com
$ rmdir to-delete

Você também pode mv com/com/* com e remover o diretório interno, se você não tiver muitos arquivos e nenhum deles for dotfiles, mas o acima é mais geral e mais eficiente.

    
por 02.09.2014 / 04:51
0

A única maneira de conseguir isso é mover os "vários arquivos" para um nível e, em seguida, remover o segundo diretório "com".

Exemplo

$ mv com/com/(various files) com/.
$ rmdir com/com
    
por 02.09.2014 / 04:51
0

Então aqui você tem tudo isso em um: -

mv com/com/ SOME-TEMPORARY-NAME ; rm -rf com ; mv SOME-TEMPORARY-NAME com

O ; simplesmente permite executar todos os comandos de uma só vez.

Depois, usei rm -rf para que, mesmo que você tenha outros arquivos dentro de com/ , todos sejam removidos sem interação com o usuário.

    
por 02.09.2014 / 05:28

Tags