backup – 用于过滤掉管道中不存在的文件的Shell命令

前端之家收集整理的这篇文章主要介绍了backup – 用于过滤掉管道中不存在的文件的Shell命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种很好的方法生成一个备用tar.gz,它将通过提取另一个tar.gz来覆盖什么.
tar -ztf patch.tar.gz | grep -v "/$" | tar -T- -zcvf backup.tar.gz

这很完美!但是,有时,新补丁(patch.tar.gz)不仅包含HDD中已存在的文件,还可能添加尚不存在的新文件.
这些不存在的文件将无法备份,第二个tar将生成错误.退出代码是2.

tar: folder/file.txt: Cannot stat: No such file or directory
tar: Exiting with failure status due to prevIoUs error

我正在寻找shell命令,它只检查文件是否存在(stdin)并在stdout上发送现有文件.它存在吗?我需要这样的东西:

tar -ztf patch.tar.gz | grep -v "/$" | filterfileexist | tar -T- -zcvf backup.tar.gz

我需要一个shell命令而不是shell脚本.
显然,我可以在C中实现这个shell命令,因为它非常简单,但我希望找到一些可以在其他UNIX平台上找到的通用命令.

尝试使用perl oneliner

喜欢

cat filelist | perl -ne 'chomp(); if (-e $_) {print "$_\n"}' | tar -T- -zcvf backup.tar.gz
原文链接:https://www.f2er.com/bash/385667.html

猜你在找的Bash相关文章