• 締切済み

ls であるファイル以外を表示したい

RH7.3です。 あるディレクトリ配下に多数のファイルがそんざいするのですが、 そのディレクトリで「ls」をしたときに"access_log"というファイル以外を表示させたいです。  ls [!a]* でやったのですが、access_logの他に access_log.1などがありそれも含まれてしまいます。 何かいい方法はないでしょうか? できれば、ls コマンドひとつで処理したいと思っています。(正規表現で対応?)

みんなの回答

  • damejan
  • ベストアンサー率30% (58/192)
回答No.4

ls a*[0-9]* [!a]* でどうでしょう。 先頭文字がaで始まり数字を含むファイルと、先頭文字がaではないファイルを表示します。「access1_log」というファイルがあってもちゃんと表示されますよ。でも、「access_log.a」なんかは表示されませんけど。

noname#41382
質問者

お礼

ご回答ありがとうございます。 確かに数字の入ったaccess_logは表示できるようになりましたが、 abcといったファイルなんかは表示できません..(ToT) できれば確実に"access_log以外"といった感じで指定できればいいのですが...。

noname#41382
質問者

補足

すみません。 -I オプションでできました。(ls (fileutils) 4.1) ---- man抜粋 -----  -I, --ignore=pattern   コマンドラインで与えられない限り、シェル パ ター ン   pattern (注:正規表現とは異なる) にマッチする名前の   ファイルはリスト表示しない 。 ですが、正規表現で実現する方法も知りたいので、もう少し締め切らずにまってみます。 みなさんありがとうございました!

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

> ちょっと障害が出てまして > access_logへのアクセス(ls含む)の処理中にエラーが発生してしまうんです。 そりゃあなた,クラックされてませんか? HDDやファイルシステムの障害かもしれませんが,それを調べる目的なら,やるべきなのは ls じゃなくて fsck とかじゃないでしょうか?

noname#41382
質問者

お礼

アドバイスありがとうございます。 >そりゃあなた,クラックされてませんか? > 完全に否定はできませんが...。 ただ、外部はもちろん、評価用に内部の一部にしか接続していません。 元々このサーバはファイアウォール用の専用OSなので、既定値では外部からは接続できないようになっているようです。 この状況でクラックとはちょっと考えにくいです。 >ls じゃなくて fsck とかじゃないでしょうか? > だと思います。 ですが、今あるプロセスが動いていて落とせないんです... mountを解除せずにfsckを行う方法ってないですよね? で、まずはls(なんで"まず"かというと自分が初心者だからです...^ ^)の結果をと思い 今件が気になったので投稿しました。 解決策はいくらでもあると思いますが、とりあえず知識として欲しかったので... あえて元投稿にいきさつ等を書かなかったのは、単純にこのlsの仕方を教えて頂くためでした。 よろしくお願いいたします。

noname#41382
質問者

補足

すみません、#3お礼で誤りがありました。 >元々このサーバはファイアウォール用の専用OSなので、 > ファイアウォール用にカスタマイズされたRH7.3なので ということでした。 カーネル等は全てRH7.3のままのようです。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

grep -v | access_log に渡すだけでいいんですが, > ls コマンドひとつで処理したいと思っています。 なんで? もったいない…

noname#41382
質問者

補足

ご回答ありがとうございます。 >なんで? もったいない… > ちょっと障害が出てまして access_logへのアクセス(ls含む)の処理中にエラーが発生してしまうんです。 なので、ls結果をパイプで渡してもその前でエラーがでてしまいます。 そこで、lsでaccess_log以外が問題ないかを試そうと思っていました。 ls b* ls c*等個別には一応やったのですが、できれば一度に確認できればと思い投稿しました。 よろしくお願いいたします。

  • blue_leo
  • ベストアンサー率22% (541/2399)
回答No.1

質問を読むと頭がaをはねればいいとも受け取れますが、それならば、 ls [0-9]* [b-z]* でOKではないでしょうか?

noname#41382
質問者

補足

ご回答ありがとうございます。 >質問を読むと頭がaをはねればいいとも受け取れますが > すみません、わかりづらかったです。 access_logは表示したくないけど、access_log.1は表示したいんです。 access_log.1の他に先頭にaがつくファイルがあるので、 access_logだけ といった指定が出来ればと思っています。 よろしくお願いいたします。

関連するQ&A