[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
2022-03-04 18:16:05
質問
この質問は人気があるようですね。 以下、私自身の質問にお答えします。 何が言いたいかというと イニアン は正しく、私のソースコードをより良く分析するのに役立ちました。
私の問題は
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スクリプトの中では戻ってきます。
EDIT: このRMをたくさん持っているので、問題は他のところにあるのかもしれません。全部チェックしています。上記のコードはすべて動作しますが、ベストアンサーはマークされたものです;)
解決方法は?
この問題は
find/grep
と共に
xargs
の場合、パイプでつながれたコマンドは、前のコマンドが成功した場合にのみ実行されることを確認する必要があります。上の例のように、もし
find
コマンドで検索結果が出なかった場合
rm
コマンドは、空の引数リストで起動されます。
は
man
のページがあります。
xargs
-r Compatibility with GNU xargs. The GNU version of xargs runs the
utility argument at least once, even if xargs input is empty, and
it supports a -r option to inhibit this behavior. The FreeBSD
version of xargs does not run the utility argument on empty
input, but it supports the -r option for command-line compatibil-
ity with GNU xargs, but the -r option does nothing in the FreeBSD
version of xargs.
また、貼り付けたようなコマンドをすべて試す必要はなく、以下のようなシンプルなものが適していると思います。
を追加します。
-r
のように xargs に引数を与えます。
find "$BDIR" -type d -mtime +180 -print0 | xargs -0 -r rm -rf
関連
-
[解決済み】 '\r': コマンドが見つかりません - .bashrc / .bash_profile [重複].
-
[解決済み] OS X で 'find' コマンドを使用して 'sed' を使用するとエラーが発生する。"無効なコマンドコードです。"
-
[解決済み] BashでDo-whileループをエミュレートする
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] Bashコマンドからテキストファイルの内部を検索・置換する
-
[解決済み] Bashの変数代入でCommand not foundエラーが発生する
-
[解決済み] 特定のコマンドを無視するBashのエラー
-
[解決済み] 再帰的ファイルリストの深さを制限する方法は?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】シェルスクリプトで整数式が期待されるエラーが発生する
-
[解決済み】Bashのif条件で「unary operator expected」エラーが発生する。
-
[解決済み] bashの文字列の等値性テストで、予期しない演算子エラーが発生するのはなぜですか?重複
-
[解決済み] bash スクリプトの "${BASH_SOURCE[0]}" と $( cd $( dirname "xxx" && pwd )) の意味について
-
[解決済み] スクリプトからのエラーメッセージを含むすべての端末出力をログファイルにパイプする方法
-
[解決済み] grepの出力に含まれる重複を削除する
-
[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
-
[解決済み] シェルスクリプトでこのエラーを解決するにはどうしたらよいでしょうか。"読み取り。Illegal option -t "というエラーはどうすれば解決できますか?
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み】stdin入力が空の場合、xargsコマンドを無視する方法は?