Answers:
使用-C
和--strip-components
(请参阅man tar
)。
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
该-C
标志假定目录已经存在,因此可以将tar文件的内容扩展到其中。因此mkdir FOLDER
。
--strip-components
当tar文件自然将其自身扩展到文件夹(例如github上的示例repo-name-master
文件夹)时,将使用该标志。当然,您不需要此处生成的第一级文件夹,因此--strip-components
将其设置为1
会自动为您删除该第一级文件夹。设置的数字越大,嵌套文件夹的删除越深。
man tar
。没有发现--strip-components
。好人