gpt4 book ai didi

linux - Bash 抓取目录名称以在循环中使用

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:22 25 4
gpt4 key购买 nike

我想获取目录名称来为每个目录创建一个 tar.gz 文件

例如,所有以A开头的目录:

count = 10

for ((k = 1 ; k < $count ; k++));
do
tar -cf ADIRNAME.tar.gz ADIRNAME
sleep 1
done

我该怎么做?

最佳答案

这将为每个 A* 目录创建一个 tarball。

for dir in A*/; do
tar -cf "${dir%/}".tar.gz "$dir"
done

通配符扩展为要循环的目录名称列表。尾部斜杠将匹配关闭,因为目录将包含在扩展中;我们通过简单的变量替换从 tarball 的文件名中删除它(${variable%suffix} 扩展为变量的值,并且 suffix 从末尾删除(如果存在);还有相应的 ${variable#prefix} 和许多其他替换;请参阅 shell 的手册页。)

双引号是强制性的,但只要文件名中没有空格,脚本就可以在没有双引号的情况下工作。即使在许多 shell 脚本教程中,这也是一个常见的疏忽。

关于linux - Bash 抓取目录名称以在循环中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com