Files

根據模式壓縮多個文件

  • March 28, 2022

我想知道如何根據模式使用 gzip、tar 等壓縮幾個文件……也就是說,如果我有這些文件:

server_regTCA.log.2021.02.12
server_regTCA.log.2021.02.13
server_regTCA.log.2021.02.14
server_regTCA.log.2021.02.15
server_regTCA.log.2021.02.16
server_regTCA.log.2021.02.17
server_regTCA.log.2021.02.18

我想做類似的事情gzip -9 server_regTCA.log.2021.02.[12-15]

謝謝

你還沒有提到你正在使用什麼外殼,這就是控制模式擴展的東西。

如果您正在使用bash,您可以使用大括號擴展:

gzip server_regTCA.log.2021.02.{12..15}

如果您使用的是更簡單的 shell,例如sh沒有大括號擴展,則僅限於匹配單字元模式:

gzip server_regTCA.log.2021.02.1[2-5]

在這兩種情況下,您都可以在命令前加上前綴,echo以查看 shell 如何在不實際執行gzip.

如果您正在尋找壓縮“舊”文件,可能有更好的方法來做到這一點。例如,這將壓縮與您列出的文件名的形狀匹配的所有(未壓縮)文件,這些文件名在一年(366 天)前最後一次更改:

find ... -type f -mtime +365 -name 'server_regTCA.log.????.??.??' -exec gzip {} +

(每個?匹配一個字元。壓縮文件有一個.gz不會被模式匹配的後綴。)

引用自:https://unix.stackexchange.com/questions/697113