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.
No Linux (Ubuntu), como você move todos os arquivos e diretórios para o diretório pai?
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 * ../
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 *.*
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.
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.
Um método que não causa erros e funciona sempre:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
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
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 *
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.
É 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).
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 * ..
Tags linux ubuntu file-management