如何將 find 指令與 gzip 結合起來

如何將 find 指令與 gzip 結合起來

我正在嘗試壓縮特定檔案:

find /media/mount/storage -newermt "2013-08-01 00:00:00" -path '*/*wind.txt' -print0 | xargs -0 gzip -l >> file_system.tar.gz

但我收到以下錯誤:

gzip: /media/mount/storage/20130811120802_RHI1/20130811121000_wind.txt: not in gzip format

我哪裡犯了錯?

編輯:根據 chronitis 寫的答案,有時會重新建立 tar,這是輸出:

 /media/mount/storage/File system/20130505082135_CT1/20130505090000_wind.txt
 /media/mount/storage/File system/20130505085301_CT1/20130505090000_wind.txt
 tar: Removing leading `/' from member names <- the size of the tar became zero
 /media/mount/storageFile system/20130505085301_CT1/20130505091000_wind.txt
 /media/mount/storageFile system/20130505085301_CT1/20130505092000_wind.txt

答案1

我假設您想要做的是創建一個 gzip 壓縮的 tar 存檔,其中包含該find命令找到的所有檔案(而不是分別對每個檔案進行 gzip 壓縮)。

上述命令有幾個問題:

  • gzip -l接受現有檔案並列印內容
  • gzip本身不會產生 tar 存檔(多個檔案的容器),而只是單獨壓縮每個文件

您可能想要的是這樣的:

find [conditions] -print0 | xargs -0 tar -zcf filesystem.tar.gz

相關內容