出于归档目的,我正在尝试将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:没有这样的文件或目录
GNU find -printf
用于显示文件的属性,而POSIX printf
用于格式化/转换字符串。它们不能用于同一事物,并且不能互相替代。
相反,BusyBox具有stat -c
,可用于某些相同的事情:
find . -type f -mtime -1825 -exec stat -c '%n %y' {} \;
请注意,虽然存在相同的信息,但格式不同。
printf
命令是内置于shell(根据POSIX规范)的,不是外部实用程序。您可以通过生成外壳来与-exec
结合使用:
find . -type f -mtime -1825 -exec sh -c 'printf "%h%f %TD\n" $1' sh {} \;