lsコマンドのページネーションを有効にする方法は?


34

lsDOSのようにページネーションを有効にするコマンドの同等のオプションは何dir /pですか?

回答:


54

単純な同等物はありませんが、コマンドの出力を行またはページごとにスクロール可能な個別のページとしてフォーマットするユーティリティlsがありlessます。

ls -C | less

-C列表示をトリガーする場所。使用lah引数として(ls -lah)を取得するためのLとライン表示でINEを(隠されたものを含む)にLLファイルが表示されて、そして時間 UMAN読めるfilesizes。

  • 色が適切に表示するために取得するには、あなたが追加する必要がある--color=alwaysの引数をls、そして-Rより少ない*上の引数:

    ls -C --color=always | less -R

    代替テキスト
    これは、 'ls -ah --color = always | 少ない-R '

とは対照的にmoreless出力をスクロールできます。また、非常に大きなリストの場合は少し高速です。

パイプは次のように機能します。

すべてのプログラムには入力と出力があり、パイプはあるプログラムの出力(ls)を別のプログラムの入力(less)にリダイレクトします。そして、単純に入力を期待し、それからフォーマットします。

  • 旧式のdosと同等のものは次のようになりますpg

    ls | pg
    

あなたもすることができます

  • ls | headまたはls | tailを使用して、出力の最初または最後の部分のみを表示します
  • 使用watch "ls"開いたディスプレイを保つために、変化を見るためにそれを数秒ごとに更新
  • banner $(ls)あなたが本当に画面から遠く離れて座っている場合に使用します。(;

  • 覚えておくのが長すぎる場合は、エイリアスを設定できます。

    ~/.bash_aliasesテキストエディターで開き、次のようなものを追加します。

    alias lsp="ls -ah --color=always | less -R"
    

    (これは、新しい仮想端末が起動するたびに実行されるスクリプトです。そこにすべての永続的なエイリアスを設定する必要があります)

    これでlsp、を入力するか、任意の名前を入力できます。

    エイリアスにさらに引数を渡すことができるようにするには、代わりに関数を定義する必要があります

    lsp(){ ls -ah --color=always "$@" | less -R; }
    

    この関数は、主にこのように見える:name(){ commands; };、引数を受け取ることができ$1$2$3とになります。「もしあれば、すべての引数」を$@意味します。

    あなたは今のようなものを実行することができlsp *.pylsp -Cなど。引数をlsに渡される位置に挿入します。また、重要なコマンドであれば、$ *をより少なく挿入することもできます。lsのすべての引数を見ることができますman ls(読む価値があります)。


*:この理由は、何かをパイプするたびに、色を表示できないターミナル(実際には他のプログラム)を検出するためです。「--color = always」は、lsにこれを無視させます。-Rスイッチを使用すると、画面の再描画が少なくなり、色が適切にエスケープされます。


すばらしい回答をありがとう、長いコマンドラインを見たときに、エイリアスのある部分が思い浮かびました。エイリアスを作成することによる唯一の欠点は、*。pdfのようなワイルドカードフィルターを使用することができないことです。おそらくこれに対する解決策もありますか?
NES

すべてが可能です;-)私は引数について少し付け加えました、どういうわけか以前は考えていませんでした。
ステファノパラッツォ

2
あなたは予想以上のものを与えました:)詳細な答えをありがとう。PS bashとfishに違いがあり、このエイリアス引数渡しメソッドが魚で機能するのを何らかの形で妨げるかどうかを知っていますか?ここで動作する引数オプションなしでエイリアスを取得しました。
NES

1
OK、ここaskubuntu.com/questions/19728 / ...新しい質問が始まります。これまでの有益な回答に感謝します。
NES

1
$*そして、$@まったく同じことを行います。それらはに展開され$1 $2 $3 ...ます。ただし、Quotedは"$@"展開され"$1" "$2" "$3" ...、while "$*"は展開されます"$1 $2 $3 ..."(つまり、IFS区切り文字としての最初の文字を使用して、すべての引数が1つの文字列になります)。mywiki.wooledge.org/BashGuide/Parameters
geirha

3

ページネーション用のlsコマンドがあるかどうかはわかりません。ただし、次のlessようにパイプとを使用できます。

ls | less

そして、qを使用して終了します。


1

ls | lessまたはをお試しくださいls | more。2番目はDOSバージョンに近いものです。


1
おそらく別の方法がありますか?パイプを使用しているときにシェルの色付けがアクティブにならないという欠点があるのはなぜですか?
NES

2
試してくださいls --color=always -C | less -R
-FUZxxl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.