此脚本列出包含模式的文件名(在tar归档中)。
tar tf myarchive.tar | while read -r FILE
do
if tar xf test.tar $FILE -O | grep "pattern" ;then
echo "found pattern in : $FILE"
fi
done
我的问题是:
在何处记录了此功能,其中$FILE是归档文件中的一个文件:
tar xf test.tar $FILE
我正在尝试编写一个脚本,使tar与文件夹保持同步。我正在处理很多文件,不想在每次运行脚本时都重新生成tar。我希望它只在tar中添加/删除自上次脚本运行以来从文件夹中添加/删除的文件。这就是我所拥有的。
# Create tar if it doesn't exist but don't over write if it does exist
touch -a /home/MyName/data.tar
cd /home/MyName
# Make the tar
tar -uv --exclude='dirToTar/FileIWantToExclude'
背景
我下载了linux 64位的二进制文件,并遵循了几个教程,每个教程都有类似的选项:
tar -C /usr/local --strip-components 1 -xzf /path/to/node.tar.gz
我总是得到这样的错误:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
我已经用谷歌搜索过了,似乎我已经通过其中一个开关手动指定了gzip文件格式。文件实际上是tar.xz,而不是tar.gz。它可能是旧版本中的tar.
我有一个.tar.gz格式的solaris文件。我想用grep来表示其中的一些内容。我正在使用zipgrep命令,但找不到行。下面是我正在使用的示例文件和命令。
示例文件:
BD201701.tar.gz
BD201702.tar.gz
BD201703.tar.gz
我使用下面的命令来搜索包含孟加拉的行。
zipgrep 'bangladesh' BD2017*
但是它显示了下面的错误。
[BD201701.tar.gz]
End-of-central-directory signature not found. Either this file is not
a zipf
我曾尝试编写一个shell脚本来创建另一个自解压的tar归档文件,该归档文件被压缩并编码为base64。我不知道从哪里开始,并且在shell脚本方面几乎没有经验。
如上所述,此脚本创建压缩并编码的tar归档文件,但是当我尝试从终端运行./tarName时,自解压不起作用。任何建议都将不胜感激
#!/bin/sh
tarName=$1;
if [ -e $tarName.tar.gz ]
then /bin/echo "$tarName already exists"
exit 0
fi
shift;
for files;
do
tar -czv