cp
e mv
são boas ferramentas para copiar arquivos e mover arquivos, respectivamente. Combinados com construções de shell (loops como for file in *; do ...; done
) ou find
, eles se tornam ainda mais poderosos.
Se entendi seu objetivo corretamente, você extraiu arquivos como:
somedir/file.png
somedir/file.txt
e deseja mover todos os arquivos para o diretório pai de modo que pareça:
file.png
file.txt
Usando curingas do shell, supondo que você esteja no diretório somedir
, você pode usar:
mv * ../
*
é um padrão glob que se expande para todos os arquivos no diretório atual. Se você tiver arquivos ocultos (arquivos e diretórios com um .
no nome do arquivo), use shopt -s dotglob
in bash
).
Mencionei find
antes. Se você tem uma árvore de arquivos como:
somedir/000.txt
somedir/a/001.txt
somedir/a/004.txt
somedir/b/003.txt
somedir/b/002.txt
somedir/whatever/somethingunique.txt
e deseja mover todos os arquivos em um diretório (digamos, seconddir
), use:
find -exec mv {} seconddir/ \;
Isso pressupõe que todos os nomes de arquivos sejam exclusivos, caso contrário, os arquivos seriam sobrescritos.