Help us understand the problem. What is going on with this article?

findの検索結果が空の時、xargsでエラーを吐くのを抑止する方法

More than 1 year has passed since last update.

ハウスキーピングのshellを書いていて、消す対象が見つからない時に無駄なエラーが出るので、それを抑止するためのパラメータを調べたので備忘的に残しておきます。

nandymak@TEST01:~$ find ./ -name "XXXXX*" | xargs rm -v
rm: オペランドがありません
Try 'rm --help' for more information.
nandymak@TEST01:~$ 
cd /logs/UNIRITA/auto/JOBLOG
find . -type f -mtime +1 -name "EXEJOB.*"               | xargs --no-run-if-empty rm -v

上記の例は、Linux版のA-AUTO(UNIRITA社製)の起動ログを削除するステップです。
日曜日とか、処理がない日はログが出来ないのでrmが引数なしで起動されてエラーを出します。
ハウスキーピングのログにエラーが出るので、いちいち確認作業が発生するのを防止するために「--no-run-if-empty」を入れてfindの結果が無い時はrmが実行されないようにします。

nandymak
普通のSIer勤務のレガシーエンジニア。 プログラミングはCOBOLを20年前に卒業後、コードはほとんど書いていません。 SAPした時は少しABAP/4を少しかじりました。 最近はレガシーマイグレーションで、bashをぼちぼち勉強中です。 2020/07にJDLA Deep Learning for GENERAL 2020 #2に合格しました。
intec
未来を「ひらく」、技術で「つなぐ」、世界を「変える」、豊かなデジタル社会の一翼を担う会社です。※各記事の内容は個人の見解であり、所属する会社の公式見解ではありません。
https://www.intec.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away