Se eu executar o seguinte comando:
cp -R /myfiles /mydestination
Se myfiles
contém vários subdiretórios e arquivos, em que ordem eles serão copiados?
Por exemplo, os diretórios podem ser nomeados 0123a, 9993c, myfolder, xfolder
.
Eles não são copiados em ordem alfabética OU na ordem da data OU na ordem em que aparecem ao usar um ls
comando padrão , tanto quanto eu sei, então o que realmente determina a ordem?
Edit: Estou tentando determinar a ordem que o comando cp usa para determinar quanto tempo o meu comando de cópia fez antes de parar. Por exemplo, eu esperava poder determinar se ele copiou 3 dos 4 diretórios com êxito.
linux
file-transfer
Scott Szretter
fonte
fonte
ls
comando, por padrão, classifica o conteúdo do diretório antes de exibi-lo. O que você vê impressols
não é a ordem de enumeração de diretório real.ls -U
para obter a ordem do diretório não classificado. Essa deve ser a ordemcp
usada. Se você precisar de mais controle sobre o progresso, a ordem etc., talvezcp
não seja a ferramenta para o trabalho.Respostas:
A ordem em que eles são armazenados / retornados no sistema de arquivos. Para sistemas de arquivos "não classificados", essa geralmente é a ordem de criação. Para sistemas de arquivos "classificados" (por exemplo, ext3 / 4 with
dir_index
), esta seria a ordem usada no índice do sistema de arquivos.fonte
Tivemos exatamente o mesmo problema. Copiamos grandes quantidades de dados de e para drives USB e é irritante não poder dizer até que ponto o processo foi concluído. Em vez disso, começamos a usar o RSYNC.
Ao invés de usar
cp -Rv /source /destination
Use isso em vez disso
rsync -av /source /destination
Agora, todas as suas pastas e o conteúdo delas serão processados em ordem alfabética e você poderá ver facilmente como a cópia do arquivo está progredindo.
Temos uma descrição completa desta solução em nosso site de backup online .
Moderadores, observe: eu postei isso uma vez antes, mas ele foi excluído, talvez porque eu não incluísse detalhes suficientes na resposta ou por causa do link. Talvez você aceite esta resposta mais detalhada.
fonte