*.txt
假设我的目录中有一个文件txtpath=/path/to/txt/
。
我想列出当前目录(而不是)*.txt
中的文件,而不列出当前目录中的文件,因为如果我执行.$txtpath
$txtpath
ls *.txt $txtpath
*.txt
我设法仅$txtpath
使用以下命令列出文件:find $txtpath -name '*.txt' | sed 's/\// /g' | grep -o '[^ ]*$'
但也许有更优雅的解决方案?
答案1
只需指定完整路径以及模式:
ls -d -- "${txtpath}"/*.txt
尽管实际上清单由 shell 通配完成,ls
最终只打印从 shell 接收的参数。你不妨printf
在这里使用:
printf '%s\n' "${txtpath}"/*.txt
除非txt
目录中没有非隐藏文件(在不取消不匹配的全局命令的 shell 中),否则会给出相同的结果。