QNAP使用printf查找

问题描述 投票:0回答:2

出于归档目的,我正在尝试将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:没有这样的文件或目录

bash find printf
2个回答
0
投票

GNU find -printf用于显示文件的属性,而POSIX printf用于格式化/转换字符串。它们不能用于同一事物,并且不能互相替代。

相反,BusyBox具有stat -c,可用于某些相同的事情:

find . -type f -mtime -1825 -exec stat -c '%n %y' {} \;

请注意,虽然存在相同的信息,但格式不同。


0
投票

printf命令是内置于shell(根据POSIX规范)的,不是外部实用程序。您可以通过生成外壳来与-exec结合使用:

find . -type f -mtime -1825 -exec sh -c 'printf "%h%f %TD\n" $1' sh {} \;
© www.soinside.com 2019 - 2024. All rights reserved.