ディレクトリ内のすべての「.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 形式に変換。
-print0
GNU 拡張であり、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進数権限出力をサポートしていないようです。