bash - find:缺少`-exec'错误的参数

时间:2016-12-06 11:27:51

标签: bash

我试图在find命令的帮助下清理一些文件,但在下面的场景中出现了一个奇怪的错误。

#!/bin/bash
find . -type f -newermt 2011-01-01 ! -newermt 2012-01-01 -exec truncate -s 0 {} \;

工作正常,没有任何错误。 但是当我输入一个简单的完成消息时会抛出以下错误。请参阅下面的代码

#!/bin/bash
find . -type f -newermt 2011-01-01 ! -newermt 2012-01-01 -exec truncate -s 0 {} \;
echo "completed"

我正在制作语法错误。

1 个答案:

答案 0 :(得分:1)

使用find命令的退出代码并根据该代码打印错误消息。

find . -type f -newermt 2011-01-01 ! -newermt 2012-01-01 -exec truncate -s 0 {} \; && echo "File truncation done"

(或)只是按顺序运行命令

find . -type f -newermt 2011-01-01 ! -newermt 2012-01-01 -exec truncate -s 0 {} \; ; echo "File truncation done"

(或)您可以在截断每个文件后使用echo消息

find . -type f -newermt 2011-01-01 ! -newermt 2012-01-01 -exec bash -c 'file="{}"; truncate -s 0 "$file"; echo "$file" is truncated' \;