微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GNU 查找,使用 -exec 保持 {} 不变

如何解决GNU 查找,使用 -exec 保持 {} 不变

我一直在尝试用命令替换 {} 文件内容。 问题是,如果文件自早上 6 点以来没有更改,我想这样做,所以我正在使用此命令:

sudo find /path/to/file -type f ! -newermt '06:00:00' -exec echo "{}" > '/path/to/file' \;

问题是,使用 find 命令时,{} 被替换为已找到的文件路径,我尝试使用引号、双引号或反斜杠,但我无法得到它正常工作...

有人知道正确的语法吗?

谢谢

解决方法

使用 GNU coreutils echo 命令,您可以使用这样的字符编码:

sudo find /path/to/file -type f ! -newermt '06:00:00' \
        -exec echo -e "\\0173\\0175" > '/path/to/file' \;

说明:我们对花括号使用八进制 ascii 代码,对 '{' 使用 \\0173,对 '}' 使用 \\0175 以及 -e 的标志 echo命令。这样,find 将看不到放置找到的文件名的模式,echo 命令将输出花括号 ('{}')。

,

至少在 GNU find 我找不到停止用路径替换 {} 的方法。因此,您的问题归结为 »*How to print {} without using the substring "{}"*«.

以下是一些可以在 find -exec 中使用的示例:

printf %s%s\\n { }

sh -c 'echo {""}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?