Substituir a pasta existente pelo comando mv

6

Desculpas se esta pergunta já foi feita, não consegui encontrar nada…

Digamos que eu queira substituir 'oldstuff' por 'newstuff'. Basicamente renomeando para substituir. Eu tento usar este comando:

mv ~/newstuff ~/oldstuff

Mas isso apenas move a pasta 'newstuff' para a pasta 'oldstuff'.

Como eu substituiria "oldstuff" por "newstuff"?

Estou executando o OS X 10.7.

    
por Jacob Wood 24.07.2013 / 01:37

4 respostas

5

Se ~/oldstuff não existir,

mv ~/newstuff ~/oldstuff

renomeará newstuff para oldstuff . Se existir, moverá newstuff para oldstuff .

Portanto, para responder à sua pergunta, primeiro remova ~/oldstuff (ou renomeie-o para olderstuff , veja essa pergunta novamente em como fazê-lo) e use o comando mv como fez.

    
por 24.07.2013 / 01:49
3

Outra solução seria usar o rsync. (Cuidado com as barras à direita. Elas são importantes).

Isso copiará tudo no newstuff para o oldstuff.

rsync -av ~/newstuff/ ~/oldstuff

E o código abaixo irá copiar tudo no newstuff para o oldstuff, e deletar qualquer coisa no oldstuff que não esteja no newstuff.

rsync -av --delete ~/newstuff/ ~/oldstuff

Note que nenhum desses comandos fará nada com os arquivos em ~ / newstuff. Se você quiser excluí-los, terá que executar o comando rm separadamente.

    
por 25.07.2013 / 00:35
2

Você pode tentar:

mv -f folder1/* folder2 && rmdir folder1

Passará tudo em folder1 , incluindo arquivos e diretórios para folder2 .

-f : não avisa antes de sobrescrever o equivalente a --reply=yes .

página do manual mv .

    
por 24.07.2013 / 02:02
1

Você tem pelo menos duas opções.

mv ~/newstuff/* ~/oldstuff
rmdir ~/newstuff
mv ~/oldstuff ~/newstuff

e

mv ~/oldstuff ~/ancientstuff
mv ~/newstuff ~/oldstuff
    
por 24.07.2013 / 01:58

Tags