我们有 linux rhel 机器 7.2,下面有以下文件夹/kafka/topics
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-1
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-10
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-100
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-103
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-106
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-109
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-112
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-115
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-118
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-121
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-124
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-127
drwxr-xr-x 2 root kafka 141 May 11 17:19 bgol.ase.fgt.dad3-13
.
.
.
我们想要删除所有带有名称的主题 -bgol.ase.fgt.dad3
通过使用变量 as ,
topic=bgol.ase.fgt.dad3
find /kafka/topics -name "$topic*" -exec rm -rf "{}" \;
但我觉得上面的方法不太优雅,因为我们想在bash脚本中设置这种方法
当使用变量作为 $topic 时,我将不胜感激获得删除文件夹的其他建议
答案1
如果您使用 find ,它会返回完整路径:
$ find /kafka/topics
/kafka/topics/bgol.ase.fgt.dad3-1
/kafka/topics/bgol.ase.fgt.dad3-100
...
*
所以,你应该像这样在 var 之后和这个 var 之前添加*$topic*
,finallment
find /kafka/topics -name "*$topic*" -exec rm -rf "{}" \;