我正在shell脚本中提取tar文件,它正在创建一个名称为:
的文件夹supportsuite-5-20-3 /
名称的“supportsuite”部分始终相同,但我不知道剩下的字符是什么。我正在脚本中解压缩tar文件,我需要在该脚本中生成文件夹的名称。在提取tar后,将该目录名放入脚本中的shell变量的最佳方法是什么?
我的脚本受到挑战,所以提前感谢您提供的任何帮助。
答案 0 :(得分:0)
这将解压缩并保持文件夹名称。
find . -type f -name "*.tar" -exec tar -xv '{}' \;
答案 1 :(得分:0)
如果您假设tar文件中的所有文件都在同一目录中,您可以执行以下操作:
DIRNAME=$(tar -tvf $TARFILE | head -1 | sed -e 's:^.* \([^/]*\)/.*$:\1:')
请注意,如果您的文件名中包含空格,则可能会出现异常。如果你关心这个,你需要在sed命令中调整正则表达式。
答案 2 :(得分:0)
这有点像黑客攻击,但这可能有所帮助(为bash
编写:
tar zxf supportsuite-5-20-3.tgz
NEWDIR=$(cd supportsuite-* && pwd)