web-dev-qa-db-ja.com

ls -al出力のフィールドはどういう意味ですか?

ls -alコマンドは次の出力を表示します。

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe

上記の表示のすべてのフィールドは何ですか?

240
Mr. White

出力順に;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • ファイルの権限、
  • リンクの数、
  • 所有者名、
  • 所有者グループ、
  • ファイルサイズ、
  • 最終変更時刻、および
  • ファイル/ディレクトリ名

ファイルの権限は次のように表示されます。

  • 最初の文字は-またはlまたはd、dはディレクトリを示し、1行はファイルを示し、lはシンボリックリンク(またはソフトリンク)-特殊なタイプのファイル
  • 3セットの文字、3回、所有者、グループ、その他の権限を示します:
    • r =読み取り可能
    • w =書き込み可能
    • x =実行可能

あなたの例では-rwxrw-r--、つまり、表示される行は次のとおりです。

  • 通常のファイル(-として表示)
  • 所有者による読み取り、書き込み、実行が可能(rwx)
  • 読み取り可能、書き込み可能ですが、グループでは実行できません(rw-)
  • 読み取り可能ですが、他のユーザーによる書き込みや実行はできません(r--)
236
Flyk

「ls」コマンドの出力は、「ls」のバージョン、使用するオプション、使用するプラットフォームなどによって異なります。例から、典型的なun * x(Linuxなど)から使用しているように見えますが、おそらく典型的な最新の「ls」バージョンを使用しています。その場合:

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe
?UUUGGGOOOS   00  UUUUUU GGGGGG ####    ^-- date stamp and file name are obvious ;-)
^ ^  ^  ^ ^    ^      ^      ^    ^
| |  |  | |    |      |      |    \--- File Size
| |  |  | |    |      |      \-------- Group Name (for example, Users, Administrators, etc)
| |  |  | |    |      \--------------- Owner Acct
| |  |  | |    \---------------------- Link count (what constitutes a "link" here varies)
| |  |  | \--------------------------- Alternative Access (blank means none defined, anything else varies)
| \--\--\----------------------------- Read, Write and Special access modes for [U]ser, [G]roup, and [O]thers (everyone else)
\------------------------------------- File type flag

リストしたサンプルファイルのリンク数が多すぎる理由はわかりません。一部のプラットフォームには、「リンク」を構成するものについて奇妙な概念があります。これらには通常、ハードリンクとシンボリックリンク、およびディレクトリエントリが含まれます(そのため、ディレクトリのリンク数が多いことがよくあります。親には1つのリンクがあり、ディレクトリにはそれ自体へのリンクがあります.エントリ、およびその各サブディレクトリには..を介して戻るリンクがあります)。

一部のバージョンやコマンドラインフラグには、バイト数の代わりに使用されるブロック数がリストされます。ブロックサイズが1024バイトのファイルシステムでは、1024バイトまでのすべてのサイズが「1」としてリストされます。つまり、1つのブロックが使用され、1025から2048までは「2」として、2つのブロックを使用してというように続きます。ただし、デフォルトで(コマンドラインオプションを明示的に使用せずに)ブロックサイズを一覧表示することは、ほとんどの最新のun * xマシンではまれです。

特殊/代替アクセスフラグは通常は空白ですが、プラットフォームによっては、特殊/代替アクセスモード(WIN32のACLやセキュリティ記述子など)があることを示すために使用される場合があり、さまざまに異なります。マニュアルを参照してください。 、マニュアルページ、情報ツール、その他。

許可(モード)フラグ(UUUGGGOOO)は3つの文字の3つのセットで、最初のセットは「ユーザー」(つまり、所有者)、2番目のセットは「グループ」、3番目のセットは「その他」(つまり、他の全員)です。 ;所有者でもグループでもない人)。各セットの3つの許可フラグは通常rまたは-であり、これはユーザー/グループ/その他がファイルを読み取ることができる(r)か、読み取れない(-)かを意味します。続いて、wまたは-は、ファイルへの書き込みが可能かどうかを示します(書き込みは可能だが読み取りは不可能で、奇妙に聞こえるかもしれません)。3番目の文字他のモードの「キャッチオール」フラグです。通常は、実行の場合はx(ディレクトリの場合はディレクトリの内容にアクセスできることを意味します)、なしの場合は-のようなものです。時には、setuidプログラムやsetgidプログラム、あるいはその他のあまり一般的でない文字のsまたはSに遭遇することがあります。表示されるモード文字については、「ls」のドキュメントを参照してください。

最後に、最初の文字はファイルタイプです。通常はdはディレクトリ、lはシンボリックリンク(ハードリンクは通常、独自の特殊文字なしで表示されます)、または-は通常のファイルのいずれかです。他にも、あまり一般的ではないが、さまざまなファイルシステムのファイルタイプが多数あります。これらの最初の10文字(ファイルの種類とアクセス許可)について説明します Wikipediaで 。繰り返しになりますが、ドキュメントには、コマンドがサポートして表示するファイルの種類が正確に記載されています。

ところで、 "ls"自体のman/infoページ( "man ls"/"info ls")が見つからない場合は、 "coreutils"パッケージ( "info coreutils")を調べてみてください。また、より一般的なプラットフォームの中で、Microsoftプラットフォームは「ls」出力にうまく変換できない傾向があるため、「ls」のバージョンがどのようであったかに応じて、奇妙な動作、フラグ、またはその他の異常な情報が出力に表示される場合があります。コンパイル、リンク先など.

もう1つ注意点:ファイルのタイムスタンプは通常、ファイルが最後に作成された日時変更であり、ファイルが作成された日時ではありません。実際、un * x-ishファイルシステムでは、ファイル作成時間の記録はありません。 ctimeフィールドは、FAT/NTFSファイルシステムのように「作成時間」を意味するのではなく、「inode [C] hange時間」、つまりiノード自体が最後に変更された時間を意味します。 "mtime"(最後の[M] odified)とatime(最後の[A] ccesed/read)のタイムスタンプは両方のシステムで同じです–精度(FATの粒度は2秒など)とタイムゾーンは異なる場合があります。

98
C. M.

GNUシステムでは、これはls情報ページに非常に詳細な方法で説明されています。それを見つけるために必要なのは、単にman lsそして、完全なドキュメントへの最後のリンクで見つけてください:info coreutils 'ls invocation'

ここからの引用です:

`-l'
`--format=long'
`--format=verbose'
     In addition to the name of each file, print the file type, file
     mode bits, number of hard links, owner name, group name, size, and
     timestamp (*note Formatting file timestamps::), normally the
     modification time.  Print question marks for information that
     cannot be determined.

     Normally the size is printed as a byte count without punctuation,
     but this can be overridden (*note Block size::).  For example, `-h'
     prints an abbreviated, human-readable count, and
     `--block-size="'1"' prints a byte count with the thousands
     separator of the current locale.

     For each directory that is listed, preface the files with a line
     `total BLOCKS', where BLOCKS is the total disk allocation for all
     files in that directory.  The block size currently defaults to 1024
     bytes, but this can be overridden (*note Block size::).  The
     BLOCKS computed counts each hard link separately; this is arguably
     a deficiency.

     The file type is one of the following characters:

    `-'
          regular file

    `b'
          block special file

    `c'
          character special file

    `C'
          high performance ("contiguous data") file

    `d'
          directory

    `D'
          door (Solaris 2.5 and up)

    `l'
          symbolic link

    `M'
          off-line ("migrated") file (Cray DMF)

    `n'
          network special file (HP-UX)

    `p'
          FIFO (named pipe)

    `P'
          port (Solaris 10 and up)

    `s'
          socket

    `?'
          some other file type

     The file mode bits listed are similar to symbolic mode
     specifications (*note Symbolic Modes::).  But `ls' combines
     multiple bits into the third character of each set of permissions
     as follows:

    `s'
          If the set-user-ID or set-group-ID bit and the corresponding
          executable bit are both set.

    `S'
          If the set-user-ID or set-group-ID bit is set but the
          corresponding executable bit is not set.

    `t'
          If the restricted deletion flag or sticky bit, and the
          other-executable bit, are both set.  The restricted deletion
          flag is another name for the sticky bit.  *Note Mode
          Structure::.

    `T'
          If the restricted deletion flag or sticky bit is set but the
          other-executable bit is not set.

    `x'
          If the executable bit is set and none of the above apply.

    `-'
          Otherwise.

     Following the file mode bits is a single character that specifies
     whether an alternate access method such as an access control list
     applies to the file.  When the character following the file mode
     bits is a space, there is no alternate access method.  When it is
     a printing character, then there is such a method.

     GNU `ls' uses a `.' character to indicate a file with an SELinux
     security context, but no other alternate access method.

     A file with any other combination of alternate access methods is
     marked with a `+' character.
31
rush

最初の列はファイルモード、次の列はファイルが持つリンクの数、3番目と4番目はファイルの所有者とグループの名前です。次の列はファイルのバイト数を示しています(一部のls実装には-hオプションを使用すると、この情報をよりわ​​かりやすい形式で表示できます)。最後の2つの列は、タイムスタンプとファイルの名前を示します。詳細については、manページをお読みください。

3
David Martínez