BASH:在一个不包含';我的名字里没有特定的图案

BASH:在一个不包含';我的名字里没有特定的图案,bash,Bash,我有一个目录,其中包含一堆.zip文件及其解压缩版本。我需要得到所有目录的列表,忽略.zip文件。我该怎么做 我正在考虑使用grep和ls,但不确定如何将其组合在一起。获取所有子目录的列表并将其存储到数组中: shopt -s nullglob dirs=( */ ) 如果您可以像这样打开extglob: shopt -s extglob declare -a files=( !(*.zip) ) 有关bash模式匹配的更多信息,请参见。ls | grep-v“\.zip”相关:解析ls是脆

我有一个目录,其中包含一堆.zip文件及其解压缩版本。我需要得到所有目录的列表,忽略.zip文件。我该怎么做


我正在考虑使用
grep
ls
,但不确定如何将其组合在一起。

获取所有子目录的列表并将其存储到数组中:

shopt -s nullglob
dirs=( */ )

如果您可以像这样打开
extglob

shopt -s extglob
declare -a files=( !(*.zip) )

有关bash模式匹配的更多信息,请参见。

ls | grep-v“\.zip”
相关:解析
ls
是脆弱和不安全的。具体请参见关于
extglob
的底部部分,以及如何将其存储在数组中?会是myarr=$(ls | grep-v“\.zip”)?@EtanReisner那么你会怎么做呢?获取我描述的文件名列表?我使用了这个,但是当我尝试
echo$dirs
时,我得到的只是工作目录中许多子目录中的一个。您需要使用
echo“${dirs[@]}”
来列出所有目录。