Linux で ls コマンドを使用してファイルとディレクトリを一覧表示する方法

Linux で ls コマンドを使用してファイルとディレクトリを一覧表示する方法

重要なポイント

  • ls コマンドは、ファイルとディレクトリを一覧表示するために使用できる強力なツールです。
  • ls には、機能を強化し、より使いやすくするための便利なオプションやパラメータが多数あります。
  • ls -la は、フォルダー内のすべてを表示したい場合に使用するのに適したコマンドです。

ls私たちは毎日何も考えずにLinux コマンドを使用しています。それは残念だ。少し注意してみると、コマンドラインの武器庫に追加すべきものも含め、多くの便利なオプションが見つかるでしょう。

ls ファイルとディレクトリのリストを表示します

このlsコマンドは、おそらくほとんどの Linux ユーザーが最初に遭遇するコマンドです。コマンド ラインを頻繁に使用する私たちは、何も考えずにコマンド ラインを毎日使用しています。このコマンドには、ほとんどのユーザーが認識している以上の機能がある理由がこれで説明されるかもしれません。これを含むファイルをリストして、ディレクトリ内に何があるかを確認します。ファイルのアクセス許可を確認したい場合は、ファイルを長い形式でリストします。それ以上はほとんど考慮されません。

このlsコマンドは、豊富なオプションを備えたコマンドの 1 つです。おそらくこれが問題の一部です。非常に多くのオプションがありますが、それらをどのように選別して有用なオプションを見つけるのでしょうか? そして、それらを見つけた後、どうやって覚えていますか?

コマンドとオプションおよびパラメータの文字列を組み合わせた便利な組み合わせは、エイリアスlsの最適な候補です。実際、ほとんどのディストリビューションでは、「裸の」コマンドと考えられているものは、実際にはエイリアスです。とりわけ、タイプ lslstype command can be used to show the underlying definition of aliases. Let's look at the definition of ls:

ターミナルウィンドウで「ls」と入力します。

パラメーターは、コマンド--color=auto を使用するたびに自動的に組み込まれますls。これは、リスト内のさまざまなファイル タイプにさまざまな色を提供するものです。

単純な ls リスト

Linux ターミナルを使用したことがある人なら誰でも、デフォルトでls現在のディレクトリ内のファイルとディレクトリが一覧表示されることを知っています。

ls

ターミナルウィンドウ内のls

リストを 1 列で作成したい場合は、-1(1 行に 1 つのファイル) オプションを使用します。

ls -1

ターミナルウィンドウでの ls -1

リストの一番上にある奇妙なファイル名については、後ほど説明します。

異なるディレクトリでの ls の使用

現在のディレクトリ以外のディレクトリにあるファイルを一覧表示するには、コマンド ラインでlsディレクトリへのパスを渡します。ls複数のディレクトリを に渡しls、それらを順番にリストすることもできます。lsここでは、 2 つのディレクトリ内のファイルを一覧表示するよう求めています。1 つは「Help」、もう 1 つは「gc_help」という名前です。

ls Help gc_help

ターミナル ウィンドウの ls Help gc_help

ls最初のディレクトリの内容をリストすると、2 番目のディレクトリの内容もリストされます。各ディレクトリを処理するときに、その名前が出力されます。

内容がリストされる前に ls によって表示されるディレクトリの名前。

ファイルパターンの使用

ファイルのセットを選択的にリストするには、パターン マッチングを使用します。疑問符 ” ?” は任意の 1 文字を表し、アスタリスク ” *” は任意の文字列を表します。「ip_」で始まる名前を持つファイルまたはディレクトリをリストするには、次の形式を使用します。

ls ip_*

ターミナルウィンドウでの ls ip_*

拡張子「.c」を持つファイルを一覧表示するには、次の形式を使用します。

ls *.c

ターミナルウィンドウでの ls *.c

また、 lswithgrepおよびusegrepパターン マッチング機能を使用することもできます。名前に文字列「_pin_」が含まれるファイルを探してみましょう。

ls | grep _pin_

ls |  ターミナルウィンドウで grep _pin_

lsこれは、2 つのワイルドカードを使用して単独で使用する場合とほぼ同じです。

ls | grep _pin_ ls *_pin_*

ls |  ターミナルウィンドウで grep _pin_

なぜほぼ同じなのでしょうか?レイアウトの違いに注目してください。grep出力を 1 行につき 1 つのファイル名形式に強制します。

非印刷文字

ファイル名に非印刷文字または制御文字が含まれている場合があります。通常、これは、Web からダウンロードしたアーカイブを展開する場合、またはgit リポジトリを取得した場合に発生する可能性があり、元の作成者がファイルの作成時に間違いを犯したが、それを発見できなかった場合に発生します。

私たちの奇妙なファイルは次のいずれかです。

ターミナルウィンドウでの制御文字を含むファイル名

ファイルブラウザでそれを見て、「F2」を押して名前を変更すると、印刷されない文字が奇妙な記号で表されます。

名前変更ダイアログウィンドウ内の制御文字を含むファイル名

(エスケープ) オプションを使用すると-b、ファイル名に実際に含まれる内容を確認できます。このオプションを使用すると、 C プログラミング言語lsのエスケープ シーケンスを使用して制御文字を表現します。

ls -b a*

ターミナルウィンドウでの ls -ba*

この謎の文字は改行文字であることが判明し、C では「\n」として表されます。

ファイルの無視

特定のファイルをリストから除外するには、--hideオプションを使用します。バックアップ「.bak」ファイルをリストに表示したくないとします。次のコマンドを使用できます。

ls ls --hide=*.bak

ターミナル ウィンドウでの ls --hide=*.bak

「.bak」ファイルは 2 番目のリストには含まれていません。

長い形式のリスト

-l(長いリスト) オプションを使用すると、各lsファイルに関する詳細情報が提供されます。

ls -l

ターミナルウィンドウでの ls -l

ここにはたくさんの情報があるので、順に見ていきましょう。

最初にls表示されるのは、リスト内のすべてのファイルの合計サイズです。次に、各ファイルまたはディレクトリが単独で 1 行に表示されます。

最初の 10 個の文字とダッシュのセットは、ファイルの種類と所有者、グループ、その他のファイルのアクセス許可です。

一番最初の文字はファイルの種類を表します。それは次のいずれかになります。

  • :通常のファイルです。
  • b : ブロックスペシャルファイル。
  • c : キャラクタ型スペシャルファイル。
  • d : ディレクトリ。
  • l : シンボリックリンク。
  • n : ネットワークファイル。
  • p : 名前付きパイプ。
  • s : ソケット。

次の 9 文字は、連続して表示される 3 文字からなる 3 つのグループです。3 つの各グループは、読み取り、書き込み、実行のアクセス許可をこの順序で表します。許可が下りると、rw、 のいずれかがxプレゼントされます。許可されていない場合はハイフン-が表示されます。

最初の 3 文字セットは、ファイル所有者の権限です。2 番目の 3 つの権限セットはグループ メンバー用であり、最後の 3 つの権限セットは他のメンバー用です。

所有者の実行権限が . で表される場合がありますsこれはsetuidビットです。これが存在する場合、ファイルを実行するユーザーではなく、ファイル所有者の権限でファイルが実行されることを意味します。

グループの実行権限は . にすることもできますsこれはsetgidビットです。これがファイルに適用されると、そのファイルは所有者のグループの権限で実行されることになります。ディレクトリとともに使用すると、その中に作成されたファイルは、ファイルを作成しているユーザーからではなく、ファイルが作成されているディレクトリからグループのアクセス許可を取得します。

その他の実行権限は、 で表される場合がありますt。これがスティッキービットです。通常はディレクトリに適用されます。これが設定されている場合、ディレクトリ内のファイルに設定されている書き込み権限と実行権限に関係なく、ファイル所有者、ディレクトリ所有者、または root ユーザーのみがディレクトリ内のファイルの名前を変更または削除できます。

スティッキー ビットの一般的な用途は、「/tmp」などのフォルダーです。これは、コンピュータ上のすべてのユーザーが書き込み可能です。ディレクトリ上のスティッキー ビットにより、ユーザー (およびユーザーによって起動されたプロセス) は自分の一時ファイルの名前変更または削除のみが可能になります。

「/tmp」ディレクトリにスティッキービットが見られます。(ディレクトリ) オプションの使用に注意してください-d。これにより、lsディレクトリの詳細がレポートされます。このオプションを使用しないと、lsディレクトリ内のファイルについてレポートされます。

ls -l -d /tmp

ターミナルウィンドウでの ls -l -d /tmp

アクセス許可の後の数字は、ファイルまたはディレクトリへのハード リンクの数です。ファイルの場合、これは通常 1 つですが、他のハード リンクが作成されると、この数は増加します。通常、ディレクトリには少なくとも 2 つのハード リンクがあります。1 つはそれ自体へのリンクであり、もう 1 つは親ディレクトリ内のそのエントリです。

次に所有者とグループの名前が表示されます。その後に、ファイル サイズとファイルの最終変更日が続きます。最後にファイル名を指定します。

人間が判読できるファイル サイズ

ファイル サイズをバイト単位で表示することが必ずしも便利であるとは限りません。ファイル サイズを最も適切な単位 (キロバイト、メガバイトなど) で表示するには、-h(人間が読める) オプションを使用します。

ls -l -h

ターミナルウィンドウでの ls -l -h

隠しファイルの表示

隠しファイルを表示するには、-a(すべて) オプションを使用します。

ls -l -a

ターミナルウィンドウでの ls -l -a

2 つのエントリ「.」と「..」は、それぞれ現在のディレクトリと親ディレクトリを表します。「.base_settings」というファイルが初めて表示されます。

省略します。そして。。リストから

リストが「.」と「..」のエントリで乱雑になるのは望ましくないが、隠しファイルは表示したい場合は、(ほぼ-Aすべて) オプションを使用します。

ls -l -A

ターミナルウィンドウでの ls -l -A

隠しファイルは引き続きリストに表示されますが、「.」および「..」エントリは抑制されます。

ディレクトリを再帰的にリストする

lsすべてのサブディレクトリ内のファイルをリストするには、-R(再帰) オプションを使用します。

ls -l -R

ターミナルウィンドウでの ls -l -R

lsは、開始ディレクトリの下にあるディレクトリ ツリー全体をたどって、各サブディレクトリ内のファイルを一覧表示します。

ディレクトリを再帰的にリストする ls からの出力

UIDとGIDの表示

ユーザー名とグループ名の代わりにユーザー ID とグループ ID を表示するには、-n(数値 uid および gid) オプションを使用します。

ls -n

ターミナルウィンドウでの ls -n

リストの並べ替え

リストを拡張子、ファイル サイズ、または変更時間で並べ替えることができます。これらのオプションは、長いリスト形式で使用する必要はありませんが、通常はそうすることが合理的です。ファイル サイズで並べ替えている場合は、リスト内のファイル サイズを確認するのが合理的です。拡張子の種類で並べ替える場合、長いリストの形式はそれほど重要ではありません。

拡張子で並べ替えるには、-X(拡張子で並べ替え) オプションを使用します。

ls -X -1

ターミナルウィンドウでの ls -X -1

ディレクトリが最初にリストされ (拡張子はまったくありません)、その後、拡張子に従って残りがアルファベット順に続きます。

ファイル サイズで並べ替えるには、-S(ファイル サイズで並べ替え) オプションを使用します。

ls -l -h -S

ターミナル ウィンドウでの ls -l -h -S

並べ替え順序は最大値から最小値の順です。

リストを変更時間で並べ替えるには、-t(変更時間で並べ替え) オプションを使用します。

ls -l -t

ターミナルウィンドウでの ls -l -t

リストは変更時間順に並べられています。

ファイルの変更時刻が今年内の場合、表示される情報は月、日、時刻です。変更日が今年ではない場合、表示される情報は月、日、年です。

ディレクトリ内の最新および最も古いファイルを簡単に取得するには、およびlsコマンドを使用します。headtail

最新のファイルまたはディレクトリを取得するには、次のコマンドを使用します。

ls -t | head -1

最も古いファイルまたはディレクトリを取得するには、次のコマンドを使用します。

ls -t | tail -1

ls -t |  ターミナルウィンドウの head -1

ソート順序を逆にするには

並べ替え順序を逆にするには、-r(reverse) オプションを使用します。

ls -l -h -S -r

ターミナルウィンドウでの ls -l -h -S -r

リストは最小のファイルから最大のファイルの順に並べられます。

さらにあります

の man ページをチェックしてくださいls他にも多くのオプションがあります。それらの中には、ややあいまいなユースケースを満たすものもありますが、たまには、それらについて知っておくと嬉しいでしょう。

Linux が提供できる最高の精度でファイルのタイムスタンプを確認する必要がありますか? フルタイム オプションを使用します。

ls --full-time

おそらくファイルの i ノード番号を確認したいのではないでしょうか? i ノード オプションを使用します。

ls -i

モノクロ表示で作業していて、ファイルをディレクトリとリンクと混同するリスクをすべて排除したいと考えていますか? 分類オプションを使用すると、ls次のいずれかが各リスト エントリに追加されます。

  • / : ディレクトリ。
  • @ : シンボリックリンク。
  • | : 名前付きパイプ。
  • = : ソケット。
  • * : 実行ファイル

ls -F

掘り下げてみましょう。それが豊かな鉱脈であることがわかりls、宝石が見つかり続けるでしょう。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · グループ · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping traceroute ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です