Command
命令’cp’只能在塊設備上使用?
根據我的最後一個問題,我認為我們不能使用“cp”將文件複製到磁帶設備或像“/dev/lp0”這樣的設備。但我仍然不明白為什麼。
為了使這個問題足夠簡單,告訴我命令’cp’是否只能在塊設備上使用?
有塊設備和字元設備(以及其他)。關於字元設備,字元流將來自或來自。例如鍵盤或磁帶機。關於塊設備,您可以在它們上向前和向後搜尋,因此創建文件分配表並管理文件。例如磁碟。
cp 用於(掛載的)塊設備:它在文件系統表中創建一個條目,其中包含文件儲存位置 - 然後文件儲存到該位置。包括向前(也許向後)尋求。你不能用磁帶設備來做到這一點(就像你不能用鍵盤一樣)。這就是為什麼您將 cat 與磁帶驅動器一起使用而將 cp 與磁碟一起使用的原因。
一種思考方式是將這些事物視為不同的設備類型。‘cp’ 只知道如何在有限數量的設備類型之間複製文件。儲存文件最常用的設備是磁碟驅動器。‘cp’ 知道如何在磁碟驅動器以及有限的其他設備(例如 /dev/tty)之間複製文件。
向磁帶、CD 或列印機或通過網路向另一台電腦寫入和讀取數據,需要有關這些設備如何工作的特殊知識。
每次添加新設備類型時,“cp”完全有可能得到增強,但這意味著有時會有許多不同的命令選項在某些電腦上有效,而在其他電腦上無效。
UNIX 的設計是一個命令應該做一件事,並且把它做好。對於’cp’,一件事是將磁碟文件複製到磁碟文件。