为了存档目的,我尝试将printf转换为特定格式(文件路径和最后修改日期),但在运行BusyBox v1.24.1的QNAP上有问题。
find . -type f -mtime -1825 -printf "%h%f %TD\n";错误:
查找:未识别:-printf
它不支持printf,所以我尝试使用exec参数。有以下几点:
find . -type f -mtime -1825 -exec printf "%h%f %TD\n" {} \;但是现在我得到了以下错误:
查找: printf:没有这样的文件或目录
发布于 2019-10-01 22:13:25
GNU find -printf用于显示文件的属性,POSIX printf用于格式化/转换字符串。它们不是用在同一个东西上,也不能互相替代。
相反,BusyBox有一个stat -c,您可以使用它来做一些相同的事情:
find . -type f -mtime -1825 -exec stat -c '%n %y' {} \;请注意,虽然存在相同的信息,但格式不同。
发布于 2019-10-01 21:58:39
printf命令内置于shell(根据POSIX规范),而不是外部实用程序。您可以在-exec中通过生成一个shell来利用它:
find . -type f -mtime -1825 -exec sh -c 'printf "%h%f %TD\n" $1' sh {} \;https://stackoverflow.com/questions/58192688
复制相似问题