ウェブサイト検索

Linux で rwx 権限を 8 進形式に変換する


ファイルまたはディレクトリのアクセス権を rwx の代わりに 8 進数形式で表示したり、両方を表示したりすると便利な場合があります。

古き良き ls -l コマンドを使用する代わりに、最新の Linux ディストリビューション (すべてではないにしても) のほとんどには、ファイルまたはファイル システムのステータスを表示するユーティリティである stat が含まれています。

引数を指定せずに指定したファイル名を指定して実行すると、stat はファイルまたはディレクトリに関する大量の情報を表示します。 -c オプションとともに使用すると、stat を使用して出力形式を指定できます。私たちにとって特に興味深いのは、まさにこのオプションです。

現在の作業ディレクトリ内のすべてのファイルを表示し、アクセス権を 8 進数形式で表示するには、次のように入力します。

stat -c '%n %a' *
サンプル出力
add_emails.sh 755
anaconda-ks.cfg 600
delete_emails.sh 755
employee-dump.sql 644
index.html 644
latest.tar.gz 644
nrpe-2.15.tar.gz 644
php7 644
playbook.retry 644

上記のコマンドのフォーマット シーケンスは次のとおりです。

  1. %n – ファイル名を意味します
  2. %a – 8 進数形式のアクセス権を意味します

あるいは、rwx< で権限を表示したい場合は、%a%A に追加し、この引数を stat に渡すこともできます。 形式も同様です。

その場合は、次のように入力できます。

stat -c '%n %A' *
サンプル出力
add_emails.sh -rwxr-xr-x
anaconda-ks.cfg -rw-------
delete_emails.sh -rwxr-xr-x
employee-dump.sql -rw-r--r--
index.html -rw-r--r--
latest.tar.gz -rw-r--r--
nrpe-2.15.tar.gz -rw-r--r--
php7 -rw-r--r--
playbook.retry -rw-r--r--

出力内のファイルの種類を表示するには、%F 形式のシーケンスを追加します。

stat -c '%c %F %a'

他にも指定できるフォーマット シーケンスがいくつかあります。詳細については、stat man ページを参照してください。

man stat

このヒントでは、ファイルまたはファイル システムのステータスを表示するのに役立つstat と呼ばれる重要な Linux ユーティリティについて説明しました。ここでの主な焦点は、rwx アクセス権を従来の ls -l 出力から 8 進数形式に変換することでした。

先ほども述べたように、最近の Linux ディストリビューションの多くには統計ユーティリティが付属しています。ただし、シェルには独自のバージョンの stat が付属している場合があることにも留意する必要があります。そのため、オプションとその使用方法の詳細については、シェルのドキュメントを参照してください。