如何在bash脚本中读取目录名称

时间:2009-12-02 18:27:22

标签: shell

我正在shell脚本中提取tar文件,它正在创建一个名称为:

的文件夹

supportsuite-5-20-3 /

名称的“supportsuite”部分始终相同,但我不知道剩下的字符是什么。我正在脚本中解压缩tar文件,我需要在该脚本中生成文件夹的名称。在提取tar后,将该目录名放入脚本中的shell变量的最佳方法是什么?

我的脚本受到挑战,所以提前感谢您提供的任何帮助。

3 个答案:

答案 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)