【ls】Linuxコマンド_ファイル表示とオーナー・パーミッション表示

LinuxOS上にあるファイルやディレクトリを表示するには「ls」コマンドを実施します。

lsコマンドは現在のカレントディレクトリ内、またはパスをつけることで別のディレクトリ内のファイルやディレクトリを表示することができます。

「ls」コマンドの使い方(Linux)

以下では「ls」コマンドの基本的な操作についてまとめました。
デフォルトのlsコマンドは現状のディレクトリの位置「カレントディレクトリ」のファイル・ディレクトリの情報を表示します。

$ ls
bin  boot  dev	etc  home  lib	lib64  lost+found  media  mnt  opt  proc  root	run  sbin  srv	sys  tmp  usr  var

上記のように現在いるディレクトリ内のファイルやディレクトリを表示します。
表示の順番はアルファベット順となります。

ファイル・ディレクトリ・シンボリックリンクの表示

デフォルトの「ls」コマンドでは、どれがファイルでどれがディレクトリなのか不明なので、「-F」オプションを付けることで以下のようにファイルを区別することができます。

  • ファイル:語尾に何も表示されない
  • ディレクトリ:語尾に「/」が表示される
  • シンボリックリンク:語尾に「@」が表示される
  • 実行可能ファイル:語尾に「*」が表示される
$ ls -F
bin@  boot/  dev/  etc/  home/	lib@  lib64@  lost+found/  media/  mnt/  opt/  proc/  root/  run/  sbin@  srv/	sys/  test.txt	tmp/  usr/  var/

ディレクトリ指定で表示する

次に指定したディレクトリ内のファイル・ディレクトリを表示したい時はいなのように、コマンドの後にディレクトリを指定します。
以下は、「var」フォルダを指定した表示となります。

$ ls -F /var/
adm/  cache/  crash/  db/  empty/  ftp/  games/  gopher/  kerberos/  lib/  local/  lock@  log/	mail@  nis/  opt/  preserve/  run@  spool/  tmp/  yp/

全てのファイルを表示する

以下ではディレクトリ内の全てのファイルディレクトリを表示する「-a」を使用した例となります。
全てのファイルに加え、通常では表示されない、「.」で始まるファイルやディレクトリも表示します。

$ ls -aF
./   .autorelabel  bin@   dev/	home/  lib64@	    media/  opt/   root/  sbin@  sys/	   tmp/  var/
../  .dockerenv*   boot/  etc/	lib@   lost+found/  mnt/    proc/  run/   srv/	 test.txt  usr/

縦表示と詳細な情報を表示する

上記のように横表示では見づらいので縦表示にし、かつ詳細な情報を表示するために「-l」オプションを使用します。

$ ls -laF
total 28
drwx------ 3 testuser root 4096  7月  3 03:31 ./
drwxr-xr-x 1 root     root 4096  7月  3 03:30 ../
-rw------- 1 testuser root  283  7月  3 03:40 .bash_history
-rw-r--r-- 1 testuser root   18  7月 21  2020 .bash_logout
-rw-r--r-- 1 testuser root  141  7月 21  2020 .bash_profile
-rw-r--r-- 1 testuser root  376  7月 21  2020 .bashrc
-rw-rw-r-- 1 testuser root   16  7月  3 03:31 file01.txt
drwxrwxr-x 2 testuser root 4096  7月  3 03:31 var/

詳細表示の説明としては9行目の「file01.txt」を例に上げます。

-rw-rw-r–
ファイルタイプ
ファイルタイプとパーミッションを表示します。
一番左に表示されるのがファイルタイプとなり、以下の表示となります。
・”-“:ファイル
・”d”:ディレクトリ
・”l”:シンボリックリンク
-rw-rw-r–
パーミッション
ファイルタイプとパーミッションを表示します。
ファイルタイプの右側に表示されるのがパーミッションとなり、3つの所有者と3つの権限が表示されます。
所有者は「所有者」、「所有グループ」、「その他」に別れます。
それぞれの所有者の権限は以下で表示されます。
・”r”:読み取り権限
・”w”:書き込み権限
・”x”:実行権限
左記の例で言うと、ファイルタイプで、「所有者」は読み取り・書き込み、「所有グループ」は読み取り・書き込み、「その他」は読み取りのみという権限になります。
1 ハードリンク数
testuser オーナー
root グループ
16 ファイルサイズ
7月 3 03:31 最終更新日
file01.txt ファイル名

パーミッションの詳細な説明については別途記述します。

「ls」コマンドオプション

「ls」コマンドのオプションは以下の通りとなります。

$ ls --help
使用法: ls [オプション]... [ファイル]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  . で始まる要素を無視しない
  -A, --almost-all           . および .. を一覧表示しない
      --author               -l と合わせて使用した時、各ファイルの作成者を表示する
  -b, --escape               表示不可能な文字の場合に C 形式のエスケープ文字を表示する
      --block-size=SIZE      with -l, scale sizes by SIZE when printing them;
                               e.g., '--block-size=M'; see SIZE format below
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information);
                               with -l: show ctime and sort by name;
                               otherwise: sort by ctime, newest first
  -C                         list entries by columns
      --color[=WHEN]         colorize the output; WHEN can be 'always' (default
                               if omitted), 'auto', or 'never'; more info below
  -d, --directory            list directories themselves, not their contents
  -D, --dired                generate output designed for Emacs' dired mode
  -f                         do not sort, enable -aU, disable -ls --color
  -F, --classify             append indicator (one of */=>@|) to entries
      --file-type            likewise, except do not append '*'
      --format=WORD          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C
      --full-time            like -l --time-style=full-iso
  -g                         -l と同様だがファイル所有者を表示しない
      --group-directories-first
                             group directories before files;
                               can be augmented with a --sort option, but any
                               use of --sort=none (-U) disables grouping
  -G, --no-group             in a long listing, don't print group names
  -h, --human-readable       with -l and -s, print sizes like 1K 234M 2G etc.
      --si                   likewise, but use powers of 1000 not 1024
  -H, --dereference-command-line
                             follow symbolic links listed on the command line
      --dereference-command-line-symlink-to-dir
                             follow each command line symbolic link
                               that points to a directory
      --hide=PATTERN         do not list implied entries matching shell PATTERN
                               (overridden by -a or -A)
      --hyperlink[=WHEN]     hyperlink file names; WHEN can be 'always'
                               (default if omitted), 'auto', or 'never'
      --indicator-style=WORD  append indicator with style WORD to entry names:
                               none (default), slash (-p),
                               file-type (--file-type), classify (-F)
  -i, --inode                print the index number of each file
  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
  -k, --kibibytes            default to 1024-byte blocks for disk usage;
                               used only with -s and per directory totals
  -l                         詳細リスト形式を表示する
  -L, --dereference          シンボリックリンクのファイル情報を表示するときは
                               リンクそのものではなくリンク参照先のファイル
                               情報を表示する
  -m                         要素のリストをカンマで区切り、一行に詰め込む
  -n, --numeric-uid-gid      like -l, but list numeric user and group IDs
  -N, --literal              print entry names without quoting
  -o                         like -l, but do not list group information
  -p, --indicator-style=slash
                             append / indicator to directories
  -q, --hide-control-chars   print ? instead of nongraphic characters
      --show-control-chars   show nongraphic characters as-is (the default,
                               unless program is 'ls' and output is a terminal)
  -Q, --quote-name           enclose entry names in double quotes
      --quoting-style=WORD   use quoting style WORD for entry names:
                               literal, locale, shell, shell-always,
                               shell-escape, shell-escape-always, c, escape
                               (overrides QUOTING_STYLE environment variable)
  -r, --reverse              ソート順を反転させる
  -R, --recursive            子ディレクトリを再帰的に一覧表示する
  -s, --size                 ブロック単位で各ファイルサイズを表示する
  -S                         sort by file size, largest first
      --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
                               time (-t), version (-v), extension (-X)
      --time=WORD            with -l, show time as WORD instead of default
                               modification time: atime or access or use (-u);
                               ctime or status (-c); also use specified time
                               as sort key if --sort=time (newest first)
      --time-style=TIME_STYLE  time/date format with -l; see TIME_STYLE below
  -t                         ファイル更新時間で新しい順にソートする
  -T, --tabsize=COLS         タブ幅を 8 の代わりに COLS にする
  -u                         with -lt: sort by, and show, access time;
                               with -l: show access time and sort by name;
                               otherwise: sort by access time, newest first
  -U                         do not sort; list entries in directory order
  -v                         natural sort of (version) numbers within text
  -w, --width=COLS           set output width to COLS.  0 means no limit
  -x                         list entries by lines instead of by columns
  -X                         sort alphabetically by entry extension
  -Z, --context              print any security context of each file
  -1                         list one file per line.  Avoid '\n' with -q or -b
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).

The TIME_STYLE argument can be full-iso, long-iso, iso, locale, or +FORMAT.
FORMAT is interpreted like in date(1).  If FORMAT is FORMAT1<newline>FORMAT2,
then FORMAT1 applies to non-recent files and FORMAT2 to recent files.
TIME_STYLE prefixed with 'posix-' takes effect only outside the POSIX locale.
Also the TIME_STYLE environment variable sets the default style to use.

デフォルトまたは --color=never を指定した場合、ファイルの種類を判別するための
カラー表示は無効となります。 --color=auto を指定した場合、標準出力が端末に接続
されている場合のみカラーコードを出力します。LS_COLORS 環境変数によって動作
を設定できます。LS_COLORS を設定する場合は dircolors を使用してください。

終了ステータス:
 0  正常終了、
 1  軽微な問題が発生 (例: 子ディレクトリにアクセスできない)、
 2  重大な問題が発生 (例: コマンド引数が誤っている)。

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report ls translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/ls>
or available locally via: info '(coreutils) ls invocation'

「ls」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!