2013-08-22 156 views
4

我在Linux和unsquashfs程序下有一些非典型的麻煩。將文件重定向到標準輸出 - 反向io重定向

通常我們將stdout重定向到指定的文件,但我想要一些相反的東西。 將飛行文件上創建的重定向創建爲標準輸出,無需創建實際文件。

unsquashfs可以提取指定文件,但文件完整重寫。這導致不可能命名管道使用。 這對我來說是需要的,因爲我想避免創建佔用空間和IO的臨時大文件。我必須在命令管道中使用輸出。 不幸的是,unsquashfs沒有提取文件的' - '選項,類似'tar'或'zip'命令。 沒有unsquashfs修復,我想要什麼? 它是任何預加載模塊或包裝程序或pseudofs我可以做反向重定向?

回答

3

你可以使用/dev/stdout它可以在某些情況下工作,但由於它仍然是一個管道,它不會支持文件所做的一些操作(例如尋找),所以這一切都取決於程序。

+0

不幸的是,unsquashfs在解壓縮文件中使用相同的文件。重命名不受支持。另一個問題,不要爲文件做完整的重寫。用新的inode刪除和創建。發現/ dev/stdout符號鏈接到/ proc/self/fd/1。使臨時鏈接到/ proc/self/fd並使用名爲1的文件進行歸檔。 unsquash得到serurity撤銷,並沒有輸出'1'的身體到屏幕上。 – Znik