我试图在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"
我正在制作语法错误。
答案 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' \;