このls -al
コマンドは、次の出力を表示します。
-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe
以前に表示されたフィールドはすべて何ですか?
答え1
出力順序別。
-rwxrw-r-- 1 root root 2048 Jan 13 07:11 afile.exe
- ファイル権限(
-rwxrw-r--
)、 - (ハード)リンク数(
1
)、 - 所有者名(
root
)、 - 所有者グループ(
root
)、 - ファイルサイズ(バイト
2048
)、 - 最後の修正時間(
Jan 13 07:11
)と - ファイル/ディレクトリ名(
afile.exe
)
ファイル権限は次のように表示されます。
- 最初の文字は最も一般的
-
にl
またはですd
。 Aはd
ディレクトリを表し、aはシンボリックリンク(またはソフトリンク)の-
一般ファイルを表し、他の文字は他の種類の特殊ファイルに使用されます。l
- 所有者、グループ、およびその他の権限を表す3つの文字セット(3回):
- r = 読み取り可能
- w = 書き込み可能
- x =実行可能(ファイルの場合)またはアクセス可能(ディレクトリの場合)
- 以下に示すように、拡張権限を持つ他の文字が続くことがあります
+
。
あなたの例では、-rwxrw-r--
これは表示された行が次のようになることを意味します。
- 一般ファイル(でマーク
-
) - 所有者は読み取り、書き込み、および実行可能です(
rwx
)。 - グループを読み書きできますが、実行することはできません(
rw-
)。 - 他のユーザーは読み取ることができますが、書き込みも実行もできません(
r--
)。
ハードリンクの数は、inodeが持つ名前の数、つまり生成されたリンクの数を意味します。ln
いいえオプション-s
。
答え2
「ls」コマンドの出力は、「ls」バージョン、使用されているオプション、使用されているプラットフォームなどによって異なります。あなたの例を見ると、一般的なun * x(例:Linux)とおそらく一般的な最新の「ls」バージョンで使用されているようです。この場合:
-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe
?UUUGGGOOOS 00 UUUUUU GGGGGG #### MON DD XX:XX FILENAME
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^- Filename.
| | | | | | | | | \-------------- Time of last modification.
| | | | | | | | \--------------------- File Size OR for directory size of the metadata. (Size is *usually* in bytes on modern systems; See below.)
| | | | | | | \-------------------------- 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
あなたがリストしたサンプルファイルのリンク数がなぜそれほど高いのかわかりません。一部のプラットフォームには、「リンク」を構成する奇妙な概念があります。これには通常、ハードリンクとシンボリックリンクとディレクトリエントリが含まれます(これは、ディレクトリが一般的に多くのリンクを持つ理由です。親ディレクトリへのリンクがあり、ディレクトリにはディレクトリ内へのリンクがあります)。.
エントリ、各サブディレクトリにはリターンリンクがあります。..
)。
一部のバージョンおよび/またはコマンドラインフラグは、バイト数の代わりに使用されたブロック数を一覧表示します。ブロックサイズが1024バイトのファイルシステムは、最大1024バイトのすべてのサイズを「1」としてリストします。これは1ブロックを使用することを意味します。 、列1025から2048は「2」で、2つのブロックを使用する式です。ただし、ほとんどの最新のun * xシステムでは、コマンドラインオプションを明示的に使用せず、デフォルトでブロックサイズを一覧表示することはほとんどありません。
特殊/代替アクセスフラグは通常空白ですが、一部のプラットフォームでは、特殊/代替アクセスモード(WIN32のACLやセキュリティ記述子など)の存在を示すために使用できます。マニュアルを参照してください。ページ、情報ツールなど。
特権(モード)フラグ(UUUGGGOOO
)は、3つの文字で構成される3つのグループです。ここで、第1のグループは「ユーザ」(すなわち所有者)、第2のグループは「グループ」、第3のグループは「その他」(すなわち、他者)である。どちらも所有者またはグループではない人)。各グループの3つの権限フラグは、通常、ユーザー/グループ/その他がファイルを読み取ることができるか()またはファイルを読み取ることができないか()、または後にファイルに書き込むことができるかどうかr
を示します。に書くことはできますが、読むことはできません。奇妙に聞こえます!)、3番目の文字は他のモードの「包括的な」フラグで、通常は実行と同じです(ディレクトリの場合、これはディレクトリにアクセスしようとする可能性があることを意味します)。内容)または何もありません。場合によっては、setuidおよび/またはsetgidプログラムまたはその他の一般的ではない文字が表示されるパターン文字については、マニュアルを参照してください。-
r
-
w
-
x
-
s
S
ls
最後に、最初の文字はファイルタイプです。通常d
、ディレクトリ、l
シンボリックリンク(ハードリンクは通常特殊文字なしで表示されます)、または-
一般ファイルのいずれかです。さまざまなファイルシステムで使用できる他の多くのファイル形式がありますが、あまり一般的ではありません。最初の10文字(ファイルの種類と権限)について話し合います。ウィキペディアで。繰り返しますが、ドキュメントはコマンドがサポートして表示するファイルの種類を正確に伝えます。
ls
しかし、自分のマニュアル/情報ページ(man ls
/ info ls
)が見つからない場合は、info coreutils
「coreutils」パッケージ()を見つけてください。また、Microsoftプラットフォームは一般的なプラットフォームの中から出力にうまく変換されない傾向があるため、バージョンコンパイルls
方法によっては、出力に異常な動作、フラグ、またはその他の異常な情報が表示されることがあります。ls
リンクの内容に対する反対、など。
追加の注:ファイルタイムスタンプは通常、ファイルが最後に表示された日時です。修正済み、実際にファイルが生成された時間ではなく、un * x-ishファイルシステムにはファイル作成時間の記録はありません。 ctimeフィールドは、FAT / NTFSファイルシステムのように「生成時間」を表しませんが、「inode [C]変更時間」を示します。 inode自体が最後に変更された時間です。 「mtime」(最後の[M]変更)とatime(最後の[A]アクセス/読み取り)タイムスタンプは、両方のシステムで同じです。ただし、精度(FATの粒度は2秒単位など)と時間帯は異なる場合があります。
答え3
ls
GNUシステムでは、情報ページで非常に詳細に説明されています。それを見つけるには、あなたがしなければならないことは次のとおりです。文書を開き、最後の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.
答え4
最初の列はファイルモード、次の列はファイルが持っているリンクの数、3番目と4番目の列は所有者名とファイルが属するグループです。次の列はファイルのバイト数を示しています(一部のls
実装では、-h
この情報をよりユーザーフレンドリーな形式で表示することを選択できます)。最後の2つの列はタイムスタンプとファイル名を表します。詳しくはマニュアルページをご覧ください。