0

使用这些命令我得到了一些不同的结果:

ls "$MYDIR/*.avi"
md5sum "$MYDIR/*.avi"

使用双赢。前者仅列出以 .avi 结尾的文件,而后者对所有包含 .avi 的文件进行校验和计算。这是预期的吗?我认为通配符操作应该始终如一。

4

1 回答 1

1

因为您引用了通配符,所以它没有被 shell 扩展(但变量是)。这意味着您让命令决定如何处理*角色。

您希望 shell 在调用命令之前扩展文件名:

ls "$MYDIR"/*.avi
md5sum "$MYDIR"/*.avi

如果要重用它们,您可能希望将结果存储在数组中

files=( "$MYDIR"/*.avi )
ls "${files[@]}"
md5sum "${files[@]}"
于 2014-02-23T19:02:51.277 回答