is it possible to list all the ".php" files located into a direcotry and their octal permissions?
I would like to list them like this:
775 /folder/file.php
644 /folder/asd/file2.php
etc...
is it possible to list all the ".php" files located into a direcotry and their octal permissions?
I would like to list them like this:
775 /folder/file.php
644 /folder/asd/file2.php
etc...
find /folder -name '*.php' -type f -print0 |
perl -0 -lne 'printf "%o %s\n", (lstat $_)[2]&07777, $_'
See also this related question: Convert ls -l output format to chmod format.
-print0
is a GNU extension also supported by BSDs like OS/X. GNU find
also has a -printf
predicate which could display the mode, but that one has not been added to BSD's find
.
(Tested on OS/X 10.8.4 and Debian 7 but should work on any system that has any version of perl
and find -print0
which includes all GNU systems and all recent BSDs)
find /some/path -type f -name "*.php" -exec sh -c 'stat -f "%p %N" "{}" | sed -E s/^.{3}//' \;
This is tested on OS X 10.8.4. The sed pipe just cuts the first 3 characters off the output (filetype). Looks like OS X stat
doesn't support straight-up octal permission output.
PHP
files aren't likely to contain any of those characters.
– Mel Boyce
Jul 13 '13 at 10:43
/folder
with the real path? If you run from inside the target folder, that will be.
. – terdon Jul 13 '13 at 12:31