lsにファイルのみを表示させるにはどうすればよいですか?


24

私は、lsに非ディレクトリのみを表示させる方法がある必要があると考えていますが、マニュアルページではそれを明らかにしていません


についてlsはわかりませんが、file次のコマンドで簡単に実行できますfile /directory/containing/the/files -maxdepth 1 -not -type d
ヘニングコッカーベック

1
別の方法は、lsthroughのgrepようなものの出力をフィルタすることでしょうls -1F /directory/containing/the/files | grep -vE /$。ただし、lsの出力の解析は注意が必要です。
ヘニングコッカーベック

回答:


37
ls -p | grep -v /

使用するとls -p伝えlsたディレクトリですエントリにスラッシュを追加すると、使用してgrep -v /伝えgrep線のみ返すことはないスラッシュを含むを。


私はこれが私のお気に入りの答えであるため(すべてを支持したので)これをチェックしましたが、列に入れて出力の順序を逆にする方法を見つけようとしています
...-thinksinbinary

あなたは、私が唯一のスイッチは、Cプログラミングに関してであるものを知っているならば申し訳ありませんが、私はあなたがそれで何を意味するのかを把握しようとしなかった、私は感謝して例/解説「あなたは、単一列のリストについては、1つのスイッチを使用することができます」
thinksinbinary

@sdkksこの1状況ではデフォルトで単一列になるため、出力をパイプするときにスイッチは必要ありません。それがあなたが意味していたことなら。
トーマスラッター

@thinksinbinaryはそれを複数列にする方法がわかりませんが、独自の質問を検索または質問することができ、誰かが知るでしょう。
トーマスラッター

7

これを試すことができます:

find . -maxdepth 1 -not -type d

そして、これを特別なエイリアスにマッピングします。

ただし、このlsコマンドの使用に本当に熱心な場合は、次のようにします。

ls -p | egrep -v /$


6

代わりに:

ls -lAh | grep -v '^d'

このメソッドは

  • -l 長いリスト形式
  • -A 表示しほとんどすべて(隠しファイルを表示が、表示されません...
  • -h 人間が読めるファイルサイズ

グレップしながら

  • -v 一致するレコードを表示しない
  • Regular expressionfilter- ^d文字d(ディレクトリ用)で始まるもの、つまりdrwxrwxr-x <some file details> <foldername>

毎回入力したくない場合は、bash / shellプロファイルのエイリアスにすることができます。


2

@thomasrutterの回答に対するあなたの(@thinksinbinary)コメントで、それらを逆順で、列に印刷できるようにしたいことがわかりました。あなたはおそらくすでにそれを理解したか、先に進んだでしょうが、ここにあります:

ls -pr | grep -v / | column
  • -pは、ディレクトリ名にスラッシュ( '/')を追加します
  • -rは出力の順序を逆にします
  • -v grepに逆検索を実行させて、ディレクトリ以外のすべて(-pがそこに置く '/'を持たないすべて)を出力します。
  • 列に配置する」- 明白な船長

1
ubuntuフォーラムでは、久しぶりに人々があなたの投稿にコメントして読んでいるのはクールだと思います。アセンブリとオペレーティングシステムを学ぶためにLinuxに戻りたいと思っていました。Windowsで行うのははるかに難しいからです。ありがとう!
thinksinbinary

0
ls -F | grep -v /

上記のコマンドはファイルを表示しますが、シンボリックリンク、パイプなどが含まれます。それらも削除したい場合は、下記のフラグのいずれかを使用できます。

ls -Fファイル名に記号を追加します。これらの記号は、ファイルに関する有用な情報を示します。

ls -F | grep -Ev '/|@|*|=|>|\|'

上記のコマンドはファイルのみを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.