Como faço para mover arquivos e diretórios para a pasta pai no Linux?

60

No Linux (Ubuntu), como você move todos os arquivos e diretórios para o diretório pai?

    
por slhck 27.12.2009 / 18:25

11 respostas

52
find . -maxdepth 1 -exec mv {} .. \;

isso também moverá arquivos ocultos.

Você receberá a mensagem:

mv: cannot move '.' to '../.': Device or resource busy

quando ele tenta mover . (diretório atual), mas isso não causará nenhum dano.

    
por 27.12.2009 / 18:29
72

Eu vim aqui porque sou novo nesse assunto também. Por alguma razão, o que foi dito acima não foi suficiente para mim. O que fiz para mover todos os arquivos de um diretório para o diretório pai foi:

cd to/the/dir
mv * ../
    
por 26.01.2013 / 21:20
9

Digite isto no shell:

mv *.* ..

Isso move TODOS os arquivos um nível acima.

O caractere * é um curinga. Portanto, *.deb moverá todos os arquivos .deb e Zeitgeist.* moverá uma pasta para Zeitgeist.avi e Zeitgeist.srt, pois, é claro, .. indica o diretório pai.

Para mover tudo, incluindo pastas, etc., use apenas * em vez de *.*

    
por 27.12.2009 / 18:27
7

Não pode ser mais simples que:

mv * ../

Para também mover arquivos ocultos:

mv /path/subfolder/{.,}* /path/ 

mv é um comando para mover arquivos, * significa todos os arquivos e pastas e ../ é o caminho para o diretório pai.

    
por 16.07.2014 / 20:50
2

No bash você pode usar shopt -s dotglob para fazer * corresponder a todos os arquivos e movê-los simplesmente por

shopt -s dotglob; mv * ..

Esta não é a melhor solução, pois a configuração é permanente para o shell até você alterá-lo por

shopt -u dotglob

mas acho que é bom saber.

    
por 25.01.2011 / 22:33
1

Um método que não causa erros e funciona sempre:

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done
    
por 25.07.2012 / 22:15
1
find . -maxdepth 2 -type f -exec mv {} .. \;

Eu usei uma variação acima para mover todos os arquivos das subpastas para o pai.

Eu obtinha dados em pastas por ano, mas encontrei usando metadados. Eu poderia ter todos eles na mesma pasta que facilitasse o gerenciamento.

por exemplo.

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
    
por 16.07.2014 / 20:37
1

Não há necessidade de alterar os diretórios. Apenas inclua * no final do caminho:

mv /my/folder/child/* /my/folder/

Acima apenas move arquivos não ocultos. Para mover apenas arquivos ocultos, use. *

mv /my/folder/child/.* /my/folder/

Acima de dois podem ser combinados em um comando:

mv /my/folder/child/{.,}* /my/folder/

Veja também: Como mover todos os arquivos, incluindo arquivos ocultos, para o diretório pai via *

    
por 11.04.2016 / 06:38
0

Supondo que todos os seus arquivos ocultos comecem com ponto seguido por uma letra ou um número (o que eles devem), você pode usar

mv * .[A-Za-z0-9]* ..

A parte .[A-Za-z0-9]* é para garantir que você não tente mover . ou .. , o que falharia.

    
por 27.12.2009 / 18:48
0

É simples mover todos os arquivos e pastas para o diretório pai no Linux.

Vá para essa pasta e use este comando:

mv * /the full path

Por exemplo, se seus arquivos e pastas forem os seguintes:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

Acesse a pasta pelo cd:

cd /home/abcuser/test
mv * /home/abcuser

Todos os seus arquivos e pastas serão movidos para a pasta abcuser (diretório pai).

    
por 03.11.2011 / 12:39
-1

mude para o subdiretório e execute o seguinte comando para copiar ou mover arquivos.

ex: a é o diretório pai e b é o subdiretório, queremos mover / copiar todos os arquivos de b para a (sub-diretório para o diretório pai).

cd b
cp * ..
mv * ..
    
por 20.05.2016 / 08:32