gpt4 book ai didi

Linux bash - eval 与 sh -c

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:17 26 4
gpt4 key购买 nike

我一直在试验一些 bash 脚本,遇到了一个我不太明白的问题。我试图打印出目录中的所有文件,并使用打印输出不仅显示文件名,还显示大小和上次修改日期。我可以使用以下命令执行此操作:

ls | xargs -I '{}' sh -c 'echo "{}"$(stat -c "%y %s""{}")'

我从这篇文章中得到了 sh -c 的使用:xargs with multiple commands (第一个答案)。我知道 sh -c 部分是正在执行的命令,它将字符串作为命令读入。但是,我不太明白的是为什么其他命令不起作用,例如用 eval 代替 sh -c。例如:

ls | xargs -I '{}' eval 'echo "{}"$(stat -c "%y %s' "{}")'

eval 不也是将字符串作为参数然后对其求值吗? ( eval command in bash ) 我知道我有一个使用 sh -c 的工作命令,但我想知道为什么这个命令与 eval 不同。

最佳答案

您真的不需要evalsh -cls 解析。只需使用 stat:

stat -c "%n %y %s" *

关于Linux bash - eval 与 sh -c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25020584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com