Você pode usar rsync(1)
:
rsync --remove-source-files /path/to/source /path/to/destination
Isso removerá os arquivos transferidos com sucesso do caminho original.
Estou tentando mover todos os subdiretórios de uma pasta para outro compartilhamento no mesmo servidor. Se eu fizer um mv *, ficarei sem espaço, uma vez que as pastas não serão removidas até que todas as pastas sejam transferidas. Então, eu gostaria de criar um script curto que passe por cada um deles. Alguém tem um exemplo que eu possa olhar? Eu pesquisei por aí mas não consigo encontrar exatamente o que estou procurando.
Você pode usar rsync(1)
:
rsync --remove-source-files /path/to/source /path/to/destination
Isso removerá os arquivos transferidos com sucesso do caminho original.
Você quer for
.
Um exemplo (isso apenas mostrará o que será feito):
for item in *; do
echo mv "$item" /destination/directory
done
Quando estiver satisfeito, remova echo
para fazer isso de verdade.
Usar o comando mv
para mover arquivos de um volume para outro é uma operação de cópia. Mas como você ficaria sem espaço no volume de origem? Você ficaria sem espaço apenas no volume destino se esse volume for menor que o tamanho total dos arquivos que você está movendo. Mas de qualquer forma, você está apenas desalocando espaço no volume de origem, não alocando mais espaço nele.
Se você usa mv
para "mover" arquivos de um diretório para outro no mesmo volume, isso é apenas uma operação de renomeação. Você não está copiando dados, apenas ajustando ponteiros de arquivos para apresentar uma hierarquia de diretórios diferente. Você não ficará sem espaço porque os dados do arquivo ficam exatamente onde estava.
De qualquer forma, não tenho certeza se vejo o problema. :-) Você realmente tentou isso e ficou sem espaço, ou está apenas planejando com antecedência?
ls -1 | xargs -n1 -i echo mv '{}' destination
Basta remover o eco quando estiver feliz.
Apenas para referência, acredito que o comando mv
não faça uma cópia e depois exclua a operação, ou seja, tendo
mv /home/foo /home/bar
existe simultaneamente por um curto período. Opera mais como renomear. É essencial alterar a contabilidade do sistema de arquivos para que o que aponta para /home/foo
agora aponte para /home/bar
sem realmente mover fisicamente os dados no disco de um lugar para outro ou copiando e excluindo o local anterior.