我刚刚在两台机器之间交换了磁带驱动器(均为 Unix Tru64)。设备文件现在无法正常工作,我必须对它们进行一些处理(将产生另一个问题)。我创建了一个目录来存储旧设备文件,但 cp 命令将它们视为设备文件,不允许我复制它们。
如何将设备文件以文本形式复制到另一个目录?
答案1
停止。
不做任何进一步的事情,直到你完全理解设备特殊文件是什么,它们对操作系统意味着什么,以及它们是如何被创建/管理的。(提示:mknod
- 这可能也会帮助你解决你的其他问题)
简而言之,设备文件是向设备驱动程序发送命令/数据并从其接收信息的接口。
它是不是包含要以通常方式复制、移动或操作的数据的常规文件。
通过对设备文件的新理解,你应该清楚不能只是“将设备文件作为文本复制到另一个目录”——这不是它们的工作原理。
如果您确实复制了设备文件,那么您只是将指针复制到驱动程序:更换磁带,数据就会有所不同。
因此,复制“磁带设备文件”的内容毫无意义——您想要的是复制磁带上的数据。要做到这一点,您需要向磁带设备发送命令,让其提供所有数据,然后将其作为常规文件存储在其他地方。tar
或cpio
命令在这里很有用,但还有其他选择。