gpt4 book ai didi

linux - 查找命令 - 带 -exec 句柄的语法

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

背景与问题:

我正在使用查找命令对符合我条件的所有文件进行 gzip:

sudo -u userAccount -i find /apps/server/userAccount/logs/. -maxdepth 1 -type f -exec gzip {} \;

这将继续并根据我的标准压缩所有文件,但我不想被提示覆盖——我希望能够自动跳过已经存在的文件,因为我正在处理敏感数据并且不能冒失去任何东西的风险。

到目前为止,我已经尝试过:

  1. 如上声明 -exec yes n | gzip {}\;
  2. 如上语句 -exec [判断文件是否已存在的if语句]

由于 find 语句语法错误,这些都不起作用。

问题:

有人知道如何在我的查找语句中使用上述任一方法吗?

更新:

我尝试使用:

sudo -u userAccount -i find /apps/server/userAccount/logs/. -maxdepth 1 -type f -exec bash -c "yes n | gzip {}" \;

但在我按 CTRL-C 之前,我只是将滚动的“y”个字符返回到控制台。有什么建议么?

最佳答案

-exec 之后的命令不是由shell 运行的,它是由find 直接执行的,因此不能使用shell 元字符或内置命令。如果需要使用 shell,则必须显式调用它:

-exec bash -c "yes n | gzip {}" \;

关于linux - 查找命令 - 带 -exec 句柄的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501232/

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