【问题标题】:Different results for same argument for different Unix functions [closed]不同Unix函数的相同参数的不同结果[关闭]
【发布时间】:2014-03-24 19:11:45
【问题描述】:

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

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

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

【问题讨论】:

  • 您能否再次查看您的帖子并更正ls 和md5sum 命令的格式?在 Stack Overflow 中,“verbatim”(又名“code”或“pre-formatted”)文本应该用反引号括起来。我可以直接编辑您的帖子,但不知道该怎么做,因为您帖子中的双引号数量有问题。

标签: bash wildcard ls md5sum


【解决方案1】:

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

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

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

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

files=( "$MYDIR"/*.avi )
ls "${files[@]}"
md5sum "${files[@]}"

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多