Mac OS のコマンド ラインから Octal ファイルのアクセス許可を取得する方法
目次:
コマンド ライン ユーザーは、たとえば「chmod 755 filename」のようなコマンドを実行するなど、chmod を使用して数値または 8 進形式でファイル パーミッションを設定することに慣れていると思いますが、ファイル パーミッションを取得する方法について疑問に思ったことはありませんか? 8 進形式?
ファイルやフォルダのパーミッションの 8 進数値をコマンド ラインで表示したい場合は、Mac OS の stat コマンドを使用して実行できます。
私たちは、あなたがコマンド ラインに関して妥当なレベルの経験と快適さを持っていることを前提としています。ほとんどの Mac ユーザーは、他の場所で説明されているように (その場合でも)、Mac Finder を介してのみファイルのアクセス許可を表示または変更しますが、この特定の記事はより上級のユーザーを対象としています。
Mac で数値の chmod パーミッション値を取得する方法
開始するには、Mac の /Applications/ からターミナル アプリを起動し、次のコマンドを使用します:
stat -f %A file.txt
たとえば、そのコマンドは次のように出力されます:
stat -f %A wget-1.18.tar.gz 644
この例では、「644」はそのファイルのパーミッションの 8 進値です。
別の方法として、-f と %OLp を使用することもできます (はい、これは大文字の 'o' であり、ゼロではありません)。ファイルも同じであると仮定すると、出力は同じになります:
stat -f %OLp /Applications/System\ Preferences.app
そのコマンドの出力例は次のようになります。ターゲット項目の 8 進数のパーミッションを示しています:
"$ stat -f %OLp>"
この例では、「システム環境設定」アプリケーションの 8 進数のパーミッション値は 775 です。
引用符を使用する必要はありませんが、何らかの理由でファイル名やパスをエスケープする必要がある場合、またはスクリプトの目的で、次のように簡単に配置できます:
"stat -f %OLp>"
-f フラグはフォーマット用です。「man stat」を使用して、stat のマニュアル ページから stat 出力の特定のフォーマット オプションについて指定できます。
後者のコマンドの場合、「O」(大文字の o) は 8 進数出力を実現するためのものです。
ファイルやフォルダのパーミッションを正確に数値で知ることは、非常に多くの理由で非常に役立ちます。さまざまなアイテムのパーミッションを調整している場合や、 Mac 上のファイルを再移動し、正確なアクセス許可を維持し、事後にそれを確認したいと考えています。他にも無数の用途があります。特に、Mac から何らかのサーバーを実行している場合は特にそうです。
これらのコマンドは、命名規則の大文字化に関係なく、macOS、MacOS、または Mac OS X のほぼすべてのバージョンで 8 進数のアクセス許可を取得する場合と同じように機能するはずです。ただし、注目すべきは、Mac で 8 進数のパーミッションを取得する方法が Linux の他の世界とは異なることです。そのため、Linux の世界から Mac に移行する場合は、正確にパーミッションを取得するために stat コマンド フラグを調整する必要があります。 8 進形式のアクセス許可については、次に簡単に説明します。
Linux でコマンドラインから 8 進ファイルのパーミッションを取得する
完全を期すために、Linux の世界でも 8 進数のパーミッション値を取得する方法について簡単に説明します。そこでは、8 進数のファイルパーミッションを取得するために以下を使用できます:
"stat -c %a %n /Path/To/File"
さらに簡単に stat -c コマンドを使用することもできます:
stat -c %a /Path/To/File.txt
入力した対象ファイルが同じであれば出力される数値は同じです。
繰り返しますが、後者の 2 つのアプローチは Linux 固有のものであり、Mac OS でファイルのパーミッションの 8 進数値を取得するには、上記で概説した方法を使用する必要があります。
Mac でファイル許可の数値を取得する他の方法またはアプローチを知っていますか?以下のコメントでそれらを共有してください!