sudo cdしたいときは、サブシェルを使う!

Linux

運用中のWebサーバのapacheのログを確認するため、/var/log/httpdに移動しようとしたらできませんでした。

$ sudo cd /var/log/httpd
sudo: cd: コマンドが見つかりません

調べてみたところ、sudo でcdをするにはサブシェルを使う必要があるみたいです。

$ sudo sh -c "cd /var/log/httpd; ls -lsa"

これで、httpdディレクトリ内のフォルダ名が見えました。

っていうか、よく考えたらlsするだけなら、

$ sudo ls -lsa /var/log/httpd

lsで対象ディレクトリを指定すればいいだけでしたね。。。

いちいちsudo するのも面倒だし、オリジナルのログファイルをべたべた触るのも怖いので、最終的には必要なファイルをsudo cpでhomeにコピーして使うことにしました。

sudo cp はサブシェル無しで動きました。よかったよかった。

もっとLinuxの勉強しないとな~やることは山積みです。

どなたかのご参考になればうれしいです。

コメント

  1. baskhuu より:

    参考になりました。ありがとうございます。

    • ウチイダユウゴ より:

      baskhuuさん、わざわざコメントいただきありがとうございます!
      自分のメモ代わりなブログですが、お役に立てたようで幸いです(o^^o)

タイトルとURLをコピーしました