Unix
解壓管道順序
我有一個文件 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}'
獲取內容,根據需要對文件名進行排序,然後一一解壓。