「/dev/st0」などのテープデバイスが「cp」などのコマンドを使用してコンテンツをコピーできないのはなぜですか?

「/dev/st0」などのテープデバイスが「cp」などのコマンドを使用してコンテンツをコピーできないのはなぜですか?

本からこんな言葉を聞きました。

テープデバイスは使い捨てI / Oデバイスなので、「cp」などのコマンドを使用してコピーすることはできません。

著者は以下を使用することをお勧めします'tar'

tar -cvf /dev/st0 /home

「cp」がどこかに何度も何度も読み書きすることはわかりますが、「cp」を使ってコンテンツをテープデバイスにコピーすることも成功すると思います。しかし、私はそのようなデバイスがないので、私の仮説を検証することはできません。では、あなたの意見は?

答え1

cp1つのファイルをデバイス以外のファイルにコピーするために使用されます。この2つの方法では、ファイルをプリンタに送信することはできませんcp file /dev/lp0

ファイルをテープに書き込むことはできますが、cat file > /dev/st0ファイル名、権限、またはその他のメタデータが何であるかはわかりません。tar再読み込み時に再構成できるように、この情報を含むヘッダーをファイルデータの前に追加します。

ところで、私はあなたの本で「使い捨てI / Oデバイス」が何を意味するのかわかりません。これは文字デバイスです(つまり、整列したブロックのみを書くことができるという意味です)。これはまた、catファイルサイズが必要なブロックサイズの正確な倍数ではない場合、上記のコマンドが最終的に失敗する可能性があることを意味します。

だからそれを使用してくださいtar:-)

答え2

テープにはファイルが含まれていますが、ファイルシステムは含まれていません*。両方に「文書」という言葉を使用することは少し誤解を招くかもしれません。テープ上のファイルは、EOFマークで囲まれたバイトストリームに過ぎません。それはすべてです。 wurtelが書いたように、テープの「ファイル」には名前や属性はありません。つまり、これらのファイルにはディレクトリがありません。ディレクトリ=ファイルシステム。

cp はファイルシステムのファイルを処理します。ファイルをコピーします名前付きコマンドラインからあるファイルシステムから別のファイルシステムへ目次同じまたは異なるファイルシステムにあります。考えてみてください。テープにファイルシステムがないということは、ファイル名やディレクトリがないことを意味します。CPテープとは何の関係もありません。

この本の著者が推薦したのは偶然ではない。アスファルト複数のファイルをテープに保存します。 TARは次のことを意味します。時間拡張現実中国ネギ。 TAR形式とユーティリティは、複数のファイルの内容、名前、属性だけでなく、ディレクトリツリー内の場所もパッケージ化し、内容全体をテープに書き込むことができます。必ずしもそうではありませんが、通常、テープにファイルを保存する方法は次のとおりです。

*脚注:LTFSというテープファイルシステムがあります。これは比較的新しいものです。テープは2つのパーティションに分かれています。最初のパーティションにはディレクトリが含まれ、2番目のパーティションにはファイルの内容が含まれています。 LTFSは通常のファイルシステムのように動作するため、cpを使用してファイルをコピーおよびドラッグアンドドロップすることもできます。しかし、「テープ」について言及した場合は、LTFSのない一般的な基本テープ構成について話しているとします。

答え3

テープを使用できますcp。ただし、/ dev / st0などのデバイスは、シャットダウン時に巻き戻すように構成されています。したがって、2番目のアイテムはcp最初のアイテムを上書きします。 /dev/nst0(?) (閉じたときにデバイスを巻き戻さない) を使用すると、テープ上のすべてのファイルの末尾に EOF マークが表示されます。テープを取り出すと、テープの終わりを示す2番目のEOFが記録されます。 EOTタグはすばやく検索できるため、N番目のファイルをすばやく検索できます。不可能なのは、テープの先頭からファイルを更新することです。閉じるとEOFが記録され、巻き戻すとテープの終わりを示す2番目の記録が記録されます。

関連情報