Como mover ficheiros e directórios para a pasta principal no Linux?
No Linux (Ubuntu), como mover todos os ficheiros e directórios para o directório principal?
No Linux (Ubuntu), como mover todos os ficheiros e directórios para o directório principal?
Vim aqui porque também sou novo neste assunto. Por alguma razão, o acima mencionado não me fez o truque. O que eu fiz para mover todos os ficheiros de uma dir para a dir dos seus pais foi:
cd to/the/dir
mv * ../
Escreve isto na concha:
mv *.* ..
Que move TODOS os ficheiros um nível acima.
O personagem *
é um wildcard. Assim, *.deb
moverá todos os ficheiros .deb, e Zeitgeist.*
moverá Zeitgeist.avi e Zeitgeist.srt uma pasta para cima, uma vez que, claro, ..
indica o directório pai.
Para mover tudo, incluindo pastas, etc., basta usar *
em vez de *.*
.
Não pode ser mais simples do que:
mv * ../
mover também ficheiros escondidos:
mv /path/subfolder/{.,}* /path/
mv
é um comando para mover ficheiros, *
significa todos os ficheiros e pastas e ../
é o caminho para o directório principal.
Em bash pode usar* shopt -s dotglob*** para fazer corresponder todos os ficheiros e movê-los simplesmente por
shopt -s dotglob; mv * ..
Esta não é a melhor solução, uma vez que a configuração é permanente para a concha até que a altere por
shopt -u dotglob
mas penso 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 {} .. \;
I utilizei uma variação de acima para mover todos os ficheiros das subpastas para a pasta principal.
Tinha obtido dados em pastas por ano, mas encontrei, utilizando metadados, que os podia ter todos na mesma pasta, o que facilitou a sua gestão.
eg.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Não há necessidade de alterar os directórios. Basta incluir * no final do caminho:
mv /my/folder/child/* /my/folder/
Acima apenas move ficheiros não escondidos. Para mover apenas ficheiros ocultos utilize .*
mv /my/folder/child/.* /my/folder/
Acima de dois pode ser combinado num único comando:
mv /my/folder/child/{.,}* /my/folder/
Veja também Como mover todos os ficheiros incluindo ficheiros ocultos para o directório principal via *
É simples mover todos os ficheiros e pastas para o directório principal no Linux.
Vá a essa pasta e utilize este comando:
mv * /the full path
Por exemplo, se os seus ficheiros e pastas são os seguintes:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Vá a essa pasta através do cd:
cd /home/abcuser/test
mv * /home/abcuser
Todos os seus ficheiros e pastas serão movidos para a pasta abcuser (directório pai).