Por que o dispositivo de fita como '/ dev / st0' não pode usar comandos como 'cp' para copiar o conteúdo para ele?

1

Eu entendi este ponto de um livro, diz

Because the tape device is a disposable I/O device,so we can't use commands like 'cp' to copy.

E o autor recomendou usar 'tar' :

tar -cvf /dev/st0 /home

Eu sei que 'cp' vai ler e escrever conteúdo em algum lugar repetidamente, mas eu acho que usar 'cp' para copiar coisas para o dispositivo de fita também pode ser bem-sucedido.Mas eu não tenho esse dispositivo e não posso validar minha suposição . Então, suas opiniões?

    
por cain abel 19.11.2014 / 12:16

3 respostas

1

Você usa cp para copiar um arquivo para outro arquivo, não para um dispositivo. Você não pode enviar um arquivo para a impressora com cp file /dev/lp0 .

Você pode usar cat file > /dev/st0 para gravar o arquivo em fita, mas não teria como saber qual era o nome do arquivo, nem suas permissões ou outros metadados. tar prefixam os dados do arquivo com um cabeçalho contendo essas informações para que possam ser reconstruídos ao serem lidos novamente.

BTW Não sei o que o seu livro significa com "dispositivo de E / S descartável"; é um dispositivo de caracteres (o que ironicamente significa que você só pode escrever blocos alinhados a ele). Isso também significa que o comando cat acima pode falhar no final se o tamanho do arquivo não for um múltiplo exato do tamanho de bloco necessário.

Portanto, use apenas tar : -)

    
por 19.11.2014 / 12:31
0

Uma fita contém arquivos, mas não um sistema de arquivos *. Usar a palavra 'arquivo' para ambos é um pouco enganador. Um arquivo em uma fita nada mais é do que um fluxo de bytes fechado com uma marca EOF. Isso é tudo. Como escreveu Wurtel, um "arquivo" em uma fita não tem nome nem atributos. Em outras palavras, não há catálogo desses arquivos. Catálogo = sistema de arquivos.

cp lida com arquivos em sistemas de arquivos. Ele copia o arquivo nomeado na linha de comando de um sistema de arquivos para um diretório diferente no mesmo ou em outro sistema de arquivos. Pense nisso: o fato de não haver um sistema de arquivos em uma fita significa que não há nomes de arquivos e não há diretórios. cp não tem nada a ver com fitas.

Não é por acaso que o autor do livro recomenda que o tar armazene vários arquivos em uma fita. TAR significa T macaco AR cebolinha. O formato e o utilitário TAR foram criados para poder empacotar o conteúdo, o nome e os atributos de vários arquivos junto com seu posicionamento em uma árvore de diretórios e gravar tudo em uma fita. Nem sempre, mas frequentemente é assim que você deseja armazenar arquivos em uma fita.

* Rodapé: existe um sistema de arquivos em fita, chamado LTFS. Isso é uma coisa relativamente nova. A fita é dividida em duas partições, a primeira contém o catálogo, a segunda contém o conteúdo do arquivo. O LTFS se comporta como qualquer sistema de arquivos comum, você pode copiar com o cp ou até arrastar arquivos. Mas se você simplesmente menciona "fita", eu suponho que você está falando sobre a configuração básica da fita, sem LTFS.

    
por 16.02.2015 / 16:50
0

Você pode usar cp em uma fita. Mas um dispositivo como / dev / st0 está configurado para retroceder no fechamento. Então, um segundo cp irá sobrescrever o primeiro. Se você usasse / dev / nst0 (?), Que é o dispositivo no-rewind-on-close, você obteria uma marca EOF na fita no final de cada arquivo. Quando você ejetar a fita, um segundo EOF será escrito indicando Fim da fita. É possível procurar rapidamente uma marca EOT para que a rápida recuperação do enésimo arquivo seja bem possível. O que não é possível é atualizar um arquivo no início da fita - o fechamento grava um EOF e o retrocesso grava um segundo, indicando Fim da fita.

    
por 16.02.2015 / 22:04

Tags