\r\n\r\n
私たちは毎日何気なくlinuxlsコマンドを使っています。残念です。コマンドラインライブラリに追加すべきものも含め、多くの便利なオプションが見つかりますので、注意してください。
lsコマンドは、おそらくほとんどのLinuxユーザが最初に遭遇するコマンドです。一日中コマンドラインの周りで過ごす私たちは、毎日何気なく使っています。このため、このコマンドには、ほとんどのユーザーが認識している以上のことがあるのです。ファイルをリストアップしたり、ディレクトリに何があるかを確認するのに使います。ファイルがどのような権限を持っているかを確認したいときに、長いフォーマットでファイルをリストアップします。それ以外は、ほとんど検討されない。
lsコマンドは、豊富なオプションを持つコマンドの一つである。おそらく、そこが問題なのでしょう。これだけ多くの選択肢がある中で、どのようにふるいにかけて有用なものを見つけるのでしょうか。一度見つけたものをどのように覚えておくか?
lsコマンドは、オプションと引数文字列の配置が便利なので、エイリアスの良い候補になります。実際、ほとんどのディストリビューションでは、「素の」lsコマンドと思われているものは、実はエイリアスなのです。これに加えて、typeコマンドでエイリアスの基本定義を表示することができます。lsの定義を見てみましょう。
lsを入力する
color=autoパラメータは、lsコマンドを使用するたびに自動的に含まれます。このため、ファイルタイプごとに色を変えて一覧表示するようにしています。
関連:Linuxでエイリアスやシェル関数を作成する方法
Linux端末を使ったことがある人なら誰でも知っているように,デフォルトでは,lsはカレントディレクトリのファイルとディレクトリをリストアップします.
ls1列のリストを生成するには、-1 (1行に1ファイル) オプションを使用します。
ls -1この奇妙な形のファイル名については、後ほどリストの先頭で説明します。
ls に現在のディレクトリ以外のディレクトリのファイルをリストアップさせる には,コマンドラインでそのディレクトリのパスを ls に渡す.ここでは、"Help "と "gcu Help "という2つのディレクトリにあるファイルの一覧をlsに要求しています。
ls Help gc_helplsが最初のディレクトリの内容をリストアップするとき、2番目のディレクトリの内容をリストアップします。lsは、処理中にそれぞれのディレクトリの名前を表示します。
ファイルグループを選択的にリストアップするには、パターンマッチングを使用します。クエスチョンマーク?「は任意の1文字、アスタリスク "*"は任意の文字列を表します。名前が "ip" で始まるファイルやディレクトリを一覧表示するには、次のような書式を使用します。
ls ip_*拡張子が".c "のファイルをリストアップするには、以下の形式を使用します。
ls *.cまた、lsとgrepを併用し、grepのパターンマッチ機能を利用することも可能です。ファイル名に「 \u pin 」という文字列が含まれるものを探してみましょう。
ls | grep _pin_これは、ワイルドカードを2つ使って、lsだけを使うのとほとんど同じです。
ls | grep _pin_ ls *_pin_*レイアウトが違うことに注意してください。grepは、1行に1つのファイル名の形式で出力することを強制します。
ファイル名に非印刷文字や制御文字が含まれている場合があります。これは通常、ウェブからダウンロードしたアーカイブファイルを展開したり、gitリポジトリを取得したりする際に、原作者がファイルを作成する際にエラーを起こしたが、それが見つからなかった場合に起こります。
私たちの奇妙な文書もその一つです。
それをファイルブラウザで見て、「F2」を押して名前を変更すると、印字されない文字が変な記号で表現されてしまうのです。
b (エスケープ) オプションを使用すると、ファイル名に実際に何が含まれているかを確認することができます。このオプションにより、ls は C プログラミング言語のエスケープシーケンスを使用して制御文字を表現するようになります。
ls -b a*この謎の文字は改行で表示され、Cで表すと"˶′ᴗ‵˶"となります。
特定のファイルをリストから削除するには、--hideオプションを使用します。仮に、バックアップ「.bak」ファイルをリストに表示したくないとします。以下のコマンドを使用することができます。
ls ls --hide=*.bak2番目のリストには、".bak "ファイルは含まれていません。
l(ロングリスト)オプションにより、lsは各ファイルの詳細な情報を提供することができます。
ls -lいろいろな情報がありますので、見てみましょう。
lsが最初に表示するのは、リストにあるすべてのファイルの合計サイズです。その後、各ファイルやディレクトリが別々の行で表示されます。
最初の10文字とダッシュのセットは、ファイルの種類と、所有者、グループ、その他のファイルパーミッションです。
最初の文字はファイルの種類を表し、次のいずれかになります。
次の9文字は、3文字ずつ連続して表示される3グループです。3つのグループはそれぞれ、読み取り、書き込み、実行の順で権限を表します。権限がある場合は、r、wまたはxが表示され、権限がない場合は、ハイフンが表示されます。
最初の3文字のグループはファイル所有者の権限、2番目の3文字のグループはグループメンバーの権限、最後の3文字のグループはその他のメンバーの権限です。
所有者の執行権がsで示されることもある。これがsetuidビットです。存在する場合、ファイルを実行するユーザーではなく、ファイルの所有者の権限で実行されたことを示す。
グループの実行権限をsにすることも可能で、これはsetgidビットです。ファイルに適用した場合、oowerグループのパーミッションで実行されることを意味します。ディレクトリと一緒に使用すると、ディレクトリ内に作成されたすべてのファイルは、ファイルを作成したユーザーではなく、作成したディレクトリのグループパーミッションを取得します。
他人の執行権は、時にTで表すことができる。これがベタなんです。通常、ディレクトリに適用される。このオプションを設定すると、ディレクトリ内のファイルに書き込み権限と実行権限が設定されているかどうかにかかわらず、ファイル所有者、ディレクトリ所有者、またはルートユーザーのみが、ファイルの名前の変更と削除を行えるようになります。
スティッキービットの一般的な使い方は、"/tmp "などのフォルダーです。これは、コンピューター上のすべてのユーザーが書き込むことができます。ディレクトリのスティッキービットは、ユーザーおよびユーザーによって起動されたプロセスが、自分自身の一時ファイルのみをリネームまたは削除できることを保証します。
tmp」ディレクトリにあるスティッキービッツを見ることができる。なお、-d(ディレクトリ)オプションの使用には注意が必要です。これにより、lsはそのディレクトリの詳細を報告するようになります。このオプションがない場合、lsはディレクトリ内のファイルを報告します。
ls -l -d /tmp関連:Linuxでのchmodコマンドの使い方
パーミッションに続く数字は、そのファイルやディレクトリへのハードリンクの数です。ファイルの場合、これは通常1つですが、他のハードリンクが作成されると、この数は増えます。ディレクトリには通常、少なくとも2つのハードリンクがあります。一つは自分自身へのリンクで、もう一つはその親ディレクトリのエントリである。
その後に、ファイルサイズ、ファイルの最終更新日、最後にファイル名が続く。
バイト単位のファイルサイズは必ずしも便利ではありません。ファイルサイズを最も適切な単位(キロバイト、メガバイトなど)で表示するには、-h(human readable)オプションを使用します。
ls -l -h隠しファイルを表示するには、-a(all)オプションを使用します。
ls -l -a2つのエントリ "..."と「.は,それぞれカレントディレクトリと親ディレクトリを示す。.baseu settings "という名前のファイルが初めて表示されました。
リストに". "や". "を入れたくないが、隠しファイルを見たい場合は、-A(ほとんどすべて)オプションを使用します。
ls -l -A隠しファイルも表示されますが、「.」と「.」は表示されなくなります。
ls にサブディレクトリ内の全ファイルをリストアップさせるには,-R (recursive) オプションを使用します.
ls -l -Rls は,開始ディレクトリの下のディレクトリツリー全体を走査し,各サブディレクトリにあるファイルを一覧表示します.
ユーザー名やグループ名ではなく、ユーザーIDやグループIDを表示したい場合は、-n(uidとgidの数値)オプションを使用します。
ls -n拡張子、ファイルサイズ、修正時間でリストをソートすることができます。これらのオプションは、ロングリスト・フォーマットで使用する必要はありませんが、通常は使用することに意義があります。ファイルサイズで並べ替えると、ファイルサイズを一覧で見ることができます。拡張子の種類でソートする場合、長いリスト形式はそれほど重要ではありません。
拡張子でソートするには、-X (sort by extension) オプションを使用します。
ls -X -1ディレクトリが最初にリストアップされ(拡張子は全くなし)、その後、残りのディレクトリが拡張子に従ってアルファベット順にリストアップされます。
ファイルサイズでソートするには、-S(ファイルサイズでソート)オプションを使用します。
ls -l -h -Sソート順は、大きいものから小さいものです。
リストを修正時間順に並べ替えるには、-t (sort by modification time) オプションを使用します。
ls -l -t修正時間順に並んでいます。
ファイルの更新日が当年内の場合、表示される情報は月日と時間です。修正日が現在の年でない場合、表示される情報は月日と年です。
ディレクトリ内の最新・最古のファイルを素早く取得する方法として、lsとhead、tailコマンドを併用する方法があります。
最新のファイルやディレクトリを取得するには、次のコマンドを使用します。
ls -t | head -1最も古いファイルやディレクトリを取得するには、次のコマンドを使用します。
ls -t | tail -1ソート順を逆にするには、-r(reverse)オプションを使用します。
ls -l -h -S -rリストが小さいファイルから大きいファイルへとソートされるようになりました。
lsのマニュアルページで、より多くのオプションをチェックしてください。これらのいくつかは、いくつかの曖昧なユースケースを満たしますが、時折、それらを学ぶことを嬉しく思うでしょう。
Linuxが提供できる最大限の精度でファイルのタイムスタンプを表示する必要がありますか? のフルタイムオプションを使用してください。
ls --full-timeおそらく、inodeオプションを使用してファイルのインデックスノード番号を確認したいのでしょう。
ls -iモノクロのディスプレイを使っていて、ディレクトリとリンクされたファイルを混同するリスクをすべて排除したいのですか?classifyオプションを使うと、lsは各リストのエントリに次のうちの一つを追加します。
掘ってみると、豊富な鉱物の鉱脈があり、宝石がどんどん見つかる。