Respostas:
encontrar . -maxdepth 1 -exec mv {} .. \;
isso também moverá arquivos ocultos.
Você receberá a mensagem:
mv: não pode mover `. ' para `../. ': dispositivo ou recurso ocupado
quando tenta mover .
(diretório atual), mas isso não causa nenhum dano.
-maxdepth 1
para ter certeza.
Eu vim aqui porque também sou novo nesse assunto. Por alguma razão, o exposto acima não fez o truque para mim. O que eu fiz para mover todos os arquivos de um diretório para o diretório pai foi:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Digite isso no shell:
mv *.* ..
Isso move TODOS os arquivos um nível acima.
O personagem *
é um curinga. Portanto *.deb
, moverá todos os arquivos .deb e Zeitgeist.*
moverá Zeitgeist.avi e Zeitgeist.srt uma pasta para cima, pois, é claro, ..
indica o diretório pai.
Para mover tudo, incluindo pastas, etc, basta usar em *
vez de*.*
*
não *.*
incluir diretórios
Não pode ser mais simples do 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 o shopt -s dotglob para fazer * corresponder a todos os arquivos e movê-los simplesmente
shopt -s dotglob; mv * ..
Essa não é a melhor solução, pois a configuração é permanente para o shell até você alterá-lo
shopt -u dotglob
mas acho bom saber.
(shopt -s dotglob && mv * ..)
. Dessa forma, a opção é apenas local para esse subshell.
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 {} .. \;
Usei uma variação acima para mover todos os arquivos das subpastas para o pai.
Eu tinha dados em pastas por ano, mas descobri que, usando metadados, poderia colocá-los todos na mesma pasta, o que tornava mais fácil o gerenciamento.
por exemplo.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
É 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 são os seguintes:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Vá para essa pasta via cd:
cd /home/abcuser/test
mv * /home/abcuser
Todos os seus arquivos e pastas serão movidos para a pasta abcuser (diretório pai).
/the full path
não funciona no Linux, você precisa escapar de espaços com /the\ full\ path
.
Não há necessidade de alterar diretórios. Basta incluir * 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/
Consulte também: Como mover todos os arquivos, incluindo arquivos ocultos, para o diretório pai via *
alterne para o subdiretório e execute o seguinte comando para copiar ou mover arquivos.
ex: a é o diretório pai eb é o subdiretório, queremos mover / copiar todos os arquivos de b para a (subdiretório para o diretório pai).
cd b
cp * ..
mv * ..