【发布时间】:2016-08-05 16:56:43
【问题描述】:
我看到这个问题越来越受欢迎。 我在下面回答了我自己的问题。 Inian 说的是正确的,它帮助我更好地分析了我的源代码。
我的问题出在FIND 而不是RM。我的回答给出了一个我目前正在使用的代码块,以避免当 FIND 什么也没找到但仍会将参数传递给 RM 时出现问题,从而导致上述错误。
下面的老问题
我正在编写同一命令的许多不同版本。 所有,都被执行,但有错误/信息:
rm: missing operand
Try 'rm --help' for more information.
这些是我正在使用的命令:
#!/bin/bash
BDIR=/home/user/backup
find ${BDIR} -type d -mtime +180 -print -exec rm -rf {} \;
find ${BDIR} -type d -mtime +180 -print -exec rm -rf {} +
find "$BDIR" -type d -mtime +180 -print -exec rm -rf {} \;
find "$BDIR" -depth -type d -mtime +180 -print -exec rm -rf {} \;
find ${BDIR} -depth -type d -mtime +180 -print -exec rm -rf {} +
find $BDIR -type d -mtime +180 -print0 | xargs -0 rm -rf
DEL=$(FIND $BDIR -type d -mtime +180 -print)
rm -rf $DEL
我确信它们都是正确的(因为它们都在做自己的工作),如果我手动运行它们,我不会收到该消息,但在 .sh 脚本中我会这样做。
编辑:因为我有很多这样的 RM,问题可能出在其他地方。我正在检查所有这些。以上所有代码都有效,但最好的答案是标记的;)
【问题讨论】:
-
您的问题应该是一个问题。我会恢复您的编辑,但我希望让您有机会在回滚更改之前发布您的新文本作为答案。 (显然,它仍可从您通过单击“已编辑(日期)”通知获得的编辑历史记录中获得。)
-
@tripleee 你好,我编辑了这篇文章。我希望我做得对!感谢您的关注
-
这是一个改进,尽管我仍然很想删除评论,或者将其移至您的答案。不过,感谢您的修复!