MacOsx - シェル - 特定のフォルダ内のすべての.phpファイルとそのファイルの8進数の権限を一覧表示します。

MacOsx - シェル - 特定のフォルダ内のすべての.phpファイルとそのファイルの8進数の権限を一覧表示します。

ディレクトリ内のすべての「.php」ファイルとそのファイルの8進数の権限を一覧表示することは可能ですか?

私はそれらを次のようにリストしたいと思います:

775 /folder/file.php
644 /folder/asd/file2.php
etc...

答え1

find /folder -name '*.php' -type f -print0 |
  perl -0 -lne 'printf "%o %s\n", (lstat $_)[2]&07777, $_'

この関連質問も参照してください。ls -l 出力形式を chmod 形式に変換

-print0GNU 拡張であり、OS/X などの BSD でもサポートされます。 GNUにはモードを表示できる述語がfindあります-printfが、この述語はBSDのfind

(OS / X 10.8.4およびDebian 7でテストされていますが、すべてのGNUシステムとすべての最新のBSDを含むすべてのバージョンのすべてのシステムperlで動作する必要があります)find -print0

答え2

find /some/path -type f -name "*.php" -exec sh -c 'stat -f "%p %N" "{}" | sed -E s/^.{3}//' \;

これはOS X 10.8.4でテストされました。 sedパイプは出力(ファイル形式)から最初の3文字を削除します。 OS Xはstat直接8進数権限出力をサポートしていないようです。

関連情報