简单地说,我想从一个文件创建一个归档文件,并保留文件名。
File = host1.log
Tar = Archive_date_host1.tar.gz
我就是这样用的:
find /var/log/TESTIN/ -daystart -mtime 7 -type f | xargs tar -czPf /var/log/TESTOUT/ARCHIVE_$(date +%F)_FILENAMEHERE.tar.gz
“存档”和日期部分我可以做,但有办法抓取文件名并使用它吗?我在谷歌上搜索了一堆,似乎什么都找不到。
发布于 2015-07-28 14:38:45
看起来,您希望使用每个文件的基名作为输出文件的可变部分,即删除名称和.log
后缀的目录部分。试试这个:
find /var/log/TESTIN/ -daystart -mtime 7 -type f | \
xargs -I {} sh -c 'tar -czPf /var/log/TESTOUT/ARCHIVE_$(date +%F)_$(basename {} .log).tar.gz {}'
发布于 2015-07-28 14:32:50
我认为只要find
就够了。例如,下面的命令从使用所需命名方案找到的每个文件中创建一个.tar.gz
存档。请注意,{}
被查找到的文件的名称替换,
find * -type f -exec tar -czf ARCHIVE_$(date +%F)_{}.tar.gz {} \;
https://stackoverflow.com/questions/31678923
复制相似问题