使用这些命令后,我得到了一些不同的结果:
ls "$MYDIR/*.avi"
md5sum "$MYDIR/*.avi"
使用win-bash。前者仅列出以.avi结尾的文件,而后者则对包含.avi的所有文件进行校验和计算。这是预期的吗?我认为通配符操作应该始终如一。
答案 0 :(得分:1)
因为你引用了通配符,所以它没有被shell扩展(但变量是)。这意味着你让命令决定如何处理*
字符。
您希望shell在调用命令之前展开文件名:
ls "$MYDIR"/*.avi
md5sum "$MYDIR"/*.avi
如果您正在重复使用它们,您可能希望将结果存储在数组中
files=( "$MYDIR"/*.avi )
ls "${files[@]}"
md5sum "${files[@]}"