我想编写一个bash脚本,该脚本将解压缩.tar.gz档案,并且将为每个结果文件设置一个带有原始档案名称的附加属性。只想知道解压缩文件的来源。
我试图将内部文件存储在数组中,然后进行循环。
for archive in "$1"*.tar.gz; do
if [ -f "${archive}" ]
then
readarray -t fileNames < <(tar tzf "$archive")
for file in "${fileNames}"; do
echo "${file}"
tar xvzf "${archive}" -C "$1" --no-wildcards "${file}" &&
attr -s package -V "${archive}" "${file}"
done
fi
done
结果是仅提取一个文件,并且未设置任何额外的属性。
#! /bin/bash
for archive in "$1"*.tar.gz; do
if [ -f "${archive}" ] ; then
# Unpack the archive into subfolder $1
tar xvf "$archive" -C "$1"
# Assign attributes
tar tf "$archive" | (cd "$1" && xargs -t -L1 attr -s package -V "$archive" )
fi
done
注意: