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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

2回答

848閲覧

特定のディレクトリに移動すると、特定のコマンドが自動したい

d04062

総合スコア111

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

0クリップ

投稿2021/04/14 05:08

CentOS7で、特定のディレクトリに移動すると、特定のコマンド(やシェルスクリプト)が自動で実行される方法はありますでしょうか?

参考サイトになりそうなサイトが見つからず、質問いたしました。

初心者の考えなのですが、
(1) ツールを入れて、特定の名称のファイルを監視する

(2) .bash_profileなどに、ディレクトリ名を条件としたものを書き込む

などを考えているところです。
参考文献やアドバイスいただけますと幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

cdを関数で置き換えるというのが普通でしょうね。

~/.bashrcなどに、

Bash

1cd(){ 2 command cd "$@" 3 case "$PWD" in 4 $HOME) echo Here is HOME. 5 ;; 6 /tmp) echo Here is temp. 7 ;; 8 esac 9}

投稿2021/04/14 14:08

otn

総合スコア85901

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

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

d04062

2021/04/16 11:24

ありがとうございます。 なるほど、こういったやり方があるのですね。 参考になりました
guest

0

ご希望の挙動とは少し違いますが、inotify-toolsinotifywait が使えるかもしれません。 yum install inotify-tools/usr/bin/inotifywait が入ります。

これはファイルやディレクトリのアクセスや変更のイベントを inotify で検出するものです。イベント検出をトリガとして、プログラムも実行できます。

例えば、このスクリプトを実行すると、 /tmp/watch ディレクトリに OPEN を含むイベント発生時に date >> /tmp/date.txt を実行します。

sh

1#!/bin/sh 2 3while inotifywait -e open /tmp/watch; do 4 date >> /tmp/date.txt 5done

これを使えば ls コマンドや tab キーによる補完など、ディレクトリ操作をトリガとしてコマンドを処理できます。

実際に試されると分かりやすいのですが、単純に cd /tmp/watch で移動しても date コマンドは実行されず、あくまで何かイベントの発生時に処理します。

投稿2021/04/14 11:59

zembutsu

総合スコア1584

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

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

d04062

2021/04/16 11:25

ありがとうございます。 この方法でも代用できそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問