使用tar后解压后的文件名
Name of the file decompressed after using tar
基本上是 bash 的新手,我想做的是解压缩一个文件,并在获取这个新解压缩文件中的所有文件后不久循环遍历它们。
因为我是 bash 的新手,我有点挣扎,我发现最快的方法是对压缩文件的名称进行硬编码。
因为我不想对更多变量进行硬编码,所以我想知道是否可以在 运行 解压命令之后保存解压文件的变量(没有 .tar.gz 也是一样) .
COMP_FILE=$(ls data_compressed*)
tar zxf ${COMP_FILE}
FILE_LIST=$(ls $COMP_FILE)
echo $FILE_LIST
BASH 还很陌生,所以请随时纠正或指出我可以了解更多信息的任何方向。
谢谢。
可以使用%
运算符去掉后缀,见man bash
:"${COMP_FILE%.tar.gz}"
当压缩包中的文件名中有 </code>(space 字符)或其他特殊字符时,下面的所有内容都会中断。</p>
<p>试试这个:</p>
<pre><code>COMP_FILE=$(ls data_compressed*)
tar zxf "${COMP_FILE}"
FILE_LIST=$(ls "${COMP_FILE%.tar.gz}")
cd "${COMP_FILE%.tar.gz}"
for filename in ${FILE_LIST} ; do
printf "Filename is %s\n" "${filename}"
done
感谢 v
,您可以想象在 tar
提取数据时循环遍历文件名:
for filename in $(tar xzvf data_compressed*) ; do
printf "Filename is %s\n" "${filename}"
done
基本上是 bash 的新手,我想做的是解压缩一个文件,并在获取这个新解压缩文件中的所有文件后不久循环遍历它们。
因为我是 bash 的新手,我有点挣扎,我发现最快的方法是对压缩文件的名称进行硬编码。
因为我不想对更多变量进行硬编码,所以我想知道是否可以在 运行 解压命令之后保存解压文件的变量(没有 .tar.gz 也是一样) .
COMP_FILE=$(ls data_compressed*)
tar zxf ${COMP_FILE}
FILE_LIST=$(ls $COMP_FILE)
echo $FILE_LIST
BASH 还很陌生,所以请随时纠正或指出我可以了解更多信息的任何方向。
谢谢。
可以使用%
运算符去掉后缀,见man bash
:"${COMP_FILE%.tar.gz}"
当压缩包中的文件名中有 </code>(space 字符)或其他特殊字符时,下面的所有内容都会中断。</p>
<p>试试这个:</p>
<pre><code>COMP_FILE=$(ls data_compressed*)
tar zxf "${COMP_FILE}"
FILE_LIST=$(ls "${COMP_FILE%.tar.gz}")
cd "${COMP_FILE%.tar.gz}"
for filename in ${FILE_LIST} ; do
printf "Filename is %s\n" "${filename}"
done
感谢 v
,您可以想象在 tar
提取数据时循环遍历文件名:
for filename in $(tar xzvf data_compressed*) ; do
printf "Filename is %s\n" "${filename}"
done