【发布时间】:2018-08-26 02:26:31
【问题描述】:
如何从一个目录中检索所有名?
目录包含诸如:的名称
.foo bar
.10
10.foo bar
foo bar.foo bar
我试过了
for item in $(ls "/opt/$PATH")
do
echo "$item"
done
有人会建议吗?谢谢。
【问题讨论】:
标签: bash
如何从一个目录中检索所有名?
目录包含诸如:的名称
.foo bar
.10
10.foo bar
foo bar.foo bar
我试过了
for item in $(ls "/opt/$PATH")
do
echo "$item"
done
有人会建议吗?谢谢。
【问题讨论】:
标签: bash
不要解析ls 的输出。使用 glob,例如:
for item in "/opt/$path"/*; do echo "$item"; done
如果您只想要没有绝对路径的文件名,您有多种选择,例如:
for item in "/opt/$path"/*; do basename "$item"; done
或:
(cd "/opt/$path" && for item in *; do echo "$item"; done)
如果你也想包含隐藏文件,你可以在上述命令前设置dotglob选项:
shopt -s dotglob
附带说明,"/opt/$PATH" 的使用非常可疑。
PATH 是 shell 中一个极其重要的变量,包含一个以冒号分隔的目录列表,shell 在这些目录中查找命令。
"/opt/$PATH" 不太可能产生您想要的效果。
请勿将此变量用于其他目的。
【讨论】: