Я вижу, что этот вопрос становится популярным. Я ответил на свой вопрос ниже. Что говорит Inian является правильным, и это помогло мне лучше проанализировать мой исходный код.Ошибка 'rm: missing operand' при использовании вместе с командой 'find'
Моя проблема была в FIND
, а не в RM
. Мой ответ дает блок кода, который я использую в настоящее время, чтобы избежать проблем, когда FIND ничего не находит, но все равно передаст аргументы RM, вызывая упомянутую выше ошибку.
OLD ВОПРОС НИЖЕ
Я пишу много и много другой версии одной и той же команды. Все, выполняются, но с погрешностью/Информация:
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
Я уверен, что все они являются правильными (потому что все они делают их job), и если я запустил их вручную, я не получу это сообщение, но в то время как в сценарии .sh.
EDIT: поскольку у меня есть многие из этих RM, проблема может быть где-то в другом месте. Я проверяю их все. Все приведенные выше коды работают, но лучшим ответом является тот, который отмечен;)
Возможный дубликат [Игнорировать пустой результат для xargs] (https://stackoverflow.com/questions/8296710/ignore-empty-result-for-xargs) – jazzmax
Ваш вопрос должен оставаться вопросом. Я бы отменил ваше редактирование, но я надеюсь дать вам возможность опубликовать ваш новый текст в качестве ответа вместо того, чтобы отменить изменение. (Он по-прежнему будет доступен из истории редактирования, которую вы получите, щелкнув по значку «отредактированный (дата)», очевидно.) – tripleee
@tripleee hello, я отредактировал сообщение. Надеюсь, я сделал это правильно! Спасибо, что заметили это. – Nihvel