🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

2回答

1925閲覧

find -iname /var/log/ -mtime +4 -exec rm -f {}\; コマンドの意味が解りません

hogehoge989

総合スコア11

Linux

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2019/12/09 08:46

Linuxマスターの皆様、

すみません、、コマンドがわかりませんでした。

以下のサイトを確認したところ、
リンク内容

find . -mtime -10 -mtime -20 # 10日前から20日前までに変更されたファイルと記載がありましたので、

今回のコマンドは+なので現時点から4日経過など想像しましたが、、正確な答えは
わかりませんでした。。

find -iname /var/log/ -mtime +4 -exec rm -f {};

よって、想像ですが、/var/log/から 4日以上経過したものを
rm-fしろということでしょうか ?
そしてrm -fを行いたいために
-exec が前に必須として付ける必要があり、、{}で閉じると実行するのでしょうか...?

-exec rm -f {};
見方を変えると -exec xxxx {}; で置き換えれば色々な事に置き換え可能ということでしょうか。。

従いまして、
今回のコマンドに関してどなたか説明していただけますでしょうか。

二つ目としては、皆様どうやってこのような難解なコマンドをどうやって習得されましたでしょうか。。?
通常何処で学べるものでしょうか。

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

find . -mtime -10 -mtime -20 # 10日前から20日前までに変更されたファイルと記載がありましたので、

これはそのサイトのタイプミスですね。
このままだと、「10日以内に更新され、かつ、20日以内に更新された」というおかしな条件になります。
find . -mtime +10 -mtime -20が正しいです。

find -iname /var/log/ -mtime +4 -exec rm -f {}\;

これは、意味不明です。意味としては、「カレントディレクトリの下で、/var/log/という名前のファイルを探して、更新が4日以上前なら、rm -fする」という意味ですが、ファイル名に/は使えませんので、エラーです。
find /var/log/ -iname 何か -mtime +4 -exec rm -f {}\;
の間違いでしょう。

学び方としては、中級者以上だと、man コマンドを見たり、コマンド --helpを見たりします。
初級者の場合だと、ググってサンプルを見て学ぶか、逆引き本(あるのか?)とか。
ググった場合、qiitaのような個人ブログの類だと、玉石混交で、明らかに間違っているものもあるのですが(今回のようなタイプミスレベルじゃないもの)、初級者だと見分けられずに間違ったことを覚えてしまう恐れもあるんですよね。
まあ、ググって得たものをヒントに、manを読んできちんと学ぶくらいでしょうか。

投稿2019/12/10 01:24

otn

総合スコア85882

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

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

0

二つ目としては、皆様どうやってこのような難解なコマンドをどうやって習得されましたでしょうか。。?

通常何処で学べるものでしょうか。

Linux系のコマンドに関しては、manが参考になります。man コマンド名のように検索をかければネット上のものがヒットします。

投稿2019/12/09 09:03

maisumakun

総合スコア145963

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

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

hogehoge989

2019/12/09 09:41

回答ありがとうございます。 中々本番環境で、これらコマンドを入力する機会や試すことなどないと思うので、そうなると決められたコマンドの範囲内なので仕事は終わってしまうのですが、 家に帰って自宅のLinuxにでは突然こんなコマンドが閃くかというともちろんあり得ませんし、最低限の コマンドしか入力しないので、、皆様どうやってコマンドスキルを磨いていったのかが気になりました。 職場で学ぶことが多いかと思いますが、職場では制限されている場合は、 自宅のLinuxでどんなことをしていたら色々とコマンドを入力できましたでしょうか。 サーバを建てて公開すると段々と気がついたら色々とコマンドが入力できますでしょうか。 一度AWSやAzureで無料の範囲内でサーバ公開したことはあるのですが、ほとんど不正アクセスのログを 見ている事と、filter掛けたりBan仕掛けたりするぐらいで、そこから特に発展しなかったため、 どんなことして覚えていったのか気になりました。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問