zsh 删除路径中带有通配符的子目录
zsh delete subdirectory with wildcard in path
目录结构为:
└── bar
├── first
│ └── tmp
└── second
└── tmp
我想删除所有 tmp
目录。
然而,
rm -rf 'bar/*/tmp/'
不删除目录
ls bar/*/
仍然返回两个 tmp
目录:
bar/first/:
tmp
bar/second/:
tmp
你的问题是单引号
rm -rf 'bar/*/tmp/'
如果你删除它们,你会没事的。
rm -rf bar/*/tmp
原因是(大多数,如果不是全部的话)shell 语言中的单引号表示包含的字符串将被完全视为一个字符串,这会忽略您正在尝试的 globbing要做。
目录结构为:
└── bar
├── first
│ └── tmp
└── second
└── tmp
我想删除所有 tmp
目录。
然而,
rm -rf 'bar/*/tmp/'
不删除目录
ls bar/*/
仍然返回两个 tmp
目录:
bar/first/:
tmp
bar/second/:
tmp
你的问题是单引号
rm -rf 'bar/*/tmp/'
如果你删除它们,你会没事的。
rm -rf bar/*/tmp
原因是(大多数,如果不是全部的话)shell 语言中的单引号表示包含的字符串将被完全视为一个字符串,这会忽略您正在尝试的 globbing要做。