我找不到 .tar 檔案解壓到的預設目錄。作業系統 - Ubuntu 16 4。請幫忙 ? !
答案1
當影像被打包時,它的目錄結構可以被保留。要查看 a 的目錄結構tar
而不取消tar
它:
tar -ztvf my-data.tar.gz
-t
( 的縮寫)--list
:
列出存檔的內容。參數是可選的。當給出時,它們指定要列出的成員的姓名。
如果它與提取檔案不在同一目錄中,tar
那麼它將位於該目錄的子目錄中,除非指定了-C
或:--directory
-C, --directory=DIR Change to DIR before performing any operations. This option is order-sensitive, i.e. it affects all options that follow.
嘗試find . -name '*expected file*'
在目前目錄下搜尋。
答案2
它是存檔中編碼的目錄,除非-C
在解壓縮時使用 例如 進行更改。您始終可以使用以下命令來取得存檔中的檔案路徑列表
tar -t -f archive.tar
存檔中儲存的路徑是幾乎總是相對路徑(除非-P
在建立存檔時使用),這表示存檔的內容將在目前目錄中解壓縮為檔案層次結構(除非使用 進行變更-C
)。
答案3
該tar
命令提取其文件目前工作目錄。當您tar
從 shell 執行時,這是 shell 的目前工作目錄,由命令設定cd
、由命令顯示pwd
、有時在提示字元中顯示的目錄。可以使用選項更改提取目錄-C
。
許多 tar 檔案將所有檔案放在一個頂級目錄(相對於提取目錄)中,通常具有類似於 tar 檔案的名稱。在這種情況下,所有提取的檔案都位於該目錄下。但這不是義務,有許多 tar 檔案包含多個頂級目錄和頂級檔案。另一方面,tar
在 Ubuntu 和大多數其他系統上,不會提取提取目錄之外的任何檔案。
提取目錄根本不依賴 tar 檔案的位置。 (這是針對tar
命令的,通常是大多數命令列存檔操作程序。GUI 程式的行為可能有所不同。)如果傳遞給的 tar 檔案名稱參數tar
不包含任何目錄部分,則提取目錄是tar 檔案的位置,但在一般來說它可以在任何地方。
如果您不記得執行命令時的目前目錄是什麼tar
,請檢查您的 shell 歷史記錄(在 bash 中,按Ctrl+R然後鍵入tar
;再次按Ctrl+R重複搜尋)。如果找到存檔的相對路徑(例如tar xf subdir/archive.tar
),您也許能夠找出目前目錄是什麼(在本例中,它是包含存檔的目錄的父目錄)。當然,這並不總是有幫助,例如,如果路徑是絕對路徑。
如果找不到文件,您可以嘗試使用以下命令查找在正確的時間範圍內創建或修改的文件(更準確地說,是對文件或其屬性進行的任何更改)find
及其-ctime
或-cmin
選項,例如
find ~ -cmin +30 -cmin -61
在您的主目錄下尋找 30 到 60 分鐘前更改的檔案。您可以使用-cmin
和來將更改時間與文件的更改時間進行比較。您可以在命令末尾新增以縮小範圍到存檔中包含的特定檔案名稱(沒有任何目錄部分)。-ctime
-cnewer somefile
somefile
-name foo
find
如果您tar
前一天或之前跑步定位資料庫可能會讓您知道您的文件在哪裡。例如,如果存檔包含一個文件,some/directory/myfile.txt
那麼locate some/directory/myfile.txt
會告訴您在哪裡可以找到這樣的文件。