質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

7469閲覧

find . -name *.log -exec rm -f {} \; の意味

imamoto_browser

総合スコア1161

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/05/21 20:15

コマンドの学習中なのですが、

find . -name *.log -exec rm -f {} ;

のrm -f {} \の部分ってどういう意味なのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

findは文字通り「ファイルを見つける」コマンドです。ファイルを見つける条件をパラメータに書きますが、その中に対象のパスに対して-execで指定したコマンドを実行してそのexit statusによる条件判定を用いるという機能が用意されてます。ファイルを探しながらそのファイルに対してコマンドを実行できるわけです。この機能によってfindはとても柔軟にいろんなことができます。

ということを踏まえてコマンドを読めば、以下のようになります

カレントディレクトリー配下にある拡張子がlogのファイルについて「書き込み権限がなくても自分にそれがゆるされるなら強制的に」消す

ちなみに・・・findはLinuxコマンドの基礎ですのでこの機会に使い方を覚えておくことをお勧めします。


{}はマッチ中のパス、;は-execに与えるコマンドシーケンスの終端ですがそのあたりはman findかインターネットで調べればわかるはずです。そうやって調べることで-exec ... {} +なんて書き方もできるといった発見があり、どんどん知識は増えていきます。人にきいちゃうとそういう発見がありませんので知識も増えませんね。

投稿2017/05/22 00:01

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2017/05/22 00:31

自分が使うときは、「find -print0 | xargs -0」としてしまうので、findから直接コマンドを実行したことがあまりなかったです。ありがとうございます。
KSwordOfHaste

2017/05/22 01:05

実は自分もそうです>< 本件の回答にあたりmanしたらそんな記述を見つけて「へぇ」と思ったのでちょっと書いてみた次第です。回答つけながら自らもこそっと勉強しているのが自分です。この回答は分不相応に偉そうですね。コメントいただいて却って赤面しました。
otn

2017/05/22 03:50

そういう意味では、SystemIII以前時代のスクリプトですね。 xargsは確かSystemVで、類似のapplyはBSDで出来た。
KSwordOfHaste

2017/05/22 04:28

確かにxargsがあれば必要性は薄い気はします。パスを一つずつコマンドでフィルタリングするのに使ってもいいかなぐらいのものでしょうか。findのオプションにやりたいことは大抵揃っているので使う機会は少なそうではあります。後段でフィルタリングすることも別に面倒でもないですし。そういう意味で古いオプションなのかも知れません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問