Arquivo de texto ocupado quando copio alguns arquivos

3

Eu tenho este erro quando quero copiar alguns arquivos

Meu comando:

cp -rf  /sasech/xgedff/pur/liv/v15h30050-DLIV0177521/dmesa/bin/* /applis/rgedff/pur/bin

Resultados:

cp: /applis/rgedff/pur/bin/../bin/lib/libtiny.a: Text file busy
...

Como copio meus arquivos?

    
por Mercer 14.09.2015 / 15:42

2 respostas

1

tente

rm -f /applis/rgedff/pur/bin/lib/libtiny.old
mv /applis/rgedff/pur/bin/lib/libtiny.a  applis/rgedff/pur/bin/lib/libtiny.old

antes de copiar, esteja ciente de que você pode interromper qualquer programa que use /applis/rgedff/pur/bin/lib/libtiny.a

libtiny.a é uma biblioteca de compartilhamento, um programa em execução ativo está usando, e você não pode excluir o arquivo sendo usado no Linux.

Mais precisamente, a exclusão desse arquivo resultará na remoção do nome do arquivo do diretório, enquanto os dados do arquivo serão mantidos no sistema de arquivos, desde que um processo em execução os use.

    
por 14.09.2015 / 15:52
1

Vi isso acontecer comigo quando copiei arquivos de um disco rígido para outro por meio de uma conexão como o NFS ou um túnel SSH.

O que acontece é que o arquivo que está sendo copiado se torna parte do diretório de destino. Isso significa que o diretório de destino precisa ser bloqueado, atualizado com as novas informações e desbloqueado.

Se o próximo arquivo (que no seu caso seria libtiny.a ) chegar muito cedo, ele tentará bloquear o diretório e falhar com o erro "Arquivo ocupado". Isso, então, impede a cópia desse arquivo e mais alguma coisa.

Como libtiny.a é uma biblioteca estática, não há motivos para que ela seja bloqueada contra uma cópia. Até onde sei, o compilador não bloqueia os arquivos em que está trabalhando, e realmente só aconteceria se você estivesse compilando algo nos diretórios de destino ...

Agora, isso supõe que todos os discos usem um sistema de arquivos normal . Se você usou o NTFS, os arquivos não poderão ser substituídos enquanto estiverem abertos, porque esse sistema não permite que isso aconteça.

No Linux, a abertura de um arquivo bloqueia os dados desse arquivo, mas não impede que você o desvincule, renomeie e substitua. Se o arquivo foi excluído, os dados bloqueados serão liberados do disco rígido assim que todas as alças desse arquivo forem fechadas.

Isso significa que você pode escrever um programa que, quando executado, será excluído do disco rígido e continuará a funcionar como se nada tivesse acontecido.

    
por 27.08.2016 / 00:34