2011-09-14 77 views
4

我試圖從.tar.gz文件解壓基於UNIX的操作系統。爲了做到這一點我用下面的命令:解壓縮基於UNIX的操作系統

焦油-xvf rootfs.tar.gz -o

-o標誌是不保存文件的所有權(它給一些問題)。問題是,當一個符號鏈接是untared以下信息顯示出來

無法創建符號鏈接`TOTO「:操作不允許

此外,MKNOD也給出了問題

dev/tty0:不能mknod:不允許操作

我在FAT系統。有誰知道如何解開該文件?

在此先感謝

+0

你是否以root身份運行?可能不會,但你可能需要成爲。您正在使用FAT(文件)系統?你是否在Windows上運行,期望使用Unix?請說明您正在運行的系統。你能解釋一下爲什麼你期望這可以工作嗎? –

+0

@JonathanLeffler我正在嘗試爲在基於debian的系統上運行的嵌入式處理器創建一個USB。這種情況下需要FAT文件系統。而且,是的,我是根。事情是,FAT不支持符號鏈接。 – Mikitov

回答

5

如果該文件是你必須使用一個tar.gz:

tar -xvzf rootfs.tar.gz 

,並注意是FAT文件系統不支持符號鏈接,所以它不知道如何在該FS上製作它,並解釋操作不允許的錯誤。

+2

'v'是詳細的;在提取文件名時報告文件名。GNU Tar(現代版本)中的'z'是可選的;它會自動推斷包含gzip壓縮數據的文件應該先解壓縮,同樣也適用於bzip2數據。你對FAT文件系統沒有真正支持符號鏈接是正確的;它可能不支持塊或字符設備(例如'/ dev/tty0')。 –

+3

我認爲這個問題的重點是如何跳過導致錯誤的那些「非文件」。 –

+0

是啊我知道,-v是冗長的!但我不知道現在tar不需要-z選項了:)(我仍然在使用該選項)感謝您的解釋! :) – Ivan

1

+1伊凡FPR的回答

請注意:

標誌總是命令的名稱之後吧!

您需要學習「man tar」以查看您想要的其他選項,例如,保存所有者,權限,時間創建日期等。

-3

試試這個解壓tar文件。希望它會正常工作沒有任何問題,因爲這一個解決我的問題

tar -xvvf foo.tar 
+2

-1因爲你沒有解釋這個命令是否或如何與OP給出的問題不同。 – bdesham

-1

正確的答案是:如果你想解壓一個UNIX根文件系統,那將包括特殊的文件,如設備節點(這就是爲什麼tar正在調用mknod)。

要成功創建這些文件,必須允許tar以root身份運行。因此,正確的答案是使用sudo,如下所示:

sudo tar -xvzf rootfs.tar.gz