Unix

解壓管道順序

  • November 4, 2014

我有一個文件 foo.zip,它看起來像這樣:

foo.zip
-- fileA.txt
-- fileB.txt

我可以像這樣管道提取文件的輸出:

unzip -p foo.zip *.txt | something

我的問題是我想確保文件的順序正確,例如 fileA.txt 在 fileB.txt 之前被提取和傳輸。

我可以以某種方式做到這一點並且仍然避免將文件臨時寫入磁碟嗎?

順序應與 zip 相同。因此,如果您可以控制壓縮過程,那麼您可以隨意訂購文件添加,並且解壓縮應該按該順序出現。

如果您不自己進行壓縮,則必須將它們解壓縮到文件系統並重新排序,因為沒有簡單的方法來訂購它們。

如果你真的想避免創建臨時文件,你可以使用類似的東西

unzip -l -qq foo.zip | awk '{print $4}' 

獲取內容,根據需要對文件名進行排序,然後一一解壓。

引用自:https://serverfault.com/questions/641892