例
-rwxr--r-- 1 me users 0 May 27 13:58 file_0
-rw-rwxrw- 1 me users 0 May 27 13:58 file_1
-rw-rw-rwx 1 me users 0 May 27 13:59 file_2
-rwxrwxrwx 1 me users 0 May 27 14:02 file_3
現在のディレクトリにある4つのファイルすべてをリストする必要があります
find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \)
私のために働いた。他の解決策はありますか?
_find . -type f -perm +111
_
find(1)
から:
-perm [-| +]モード
modeは、シンボリック(
chmod(1)
を参照)または8進数のいずれかです。 modeがシンボリックである場合、ゼロの開始値が想定され、modeプロセスのファイルモード作成マスクに関係なく、権限を設定またはクリアします。 modeが8進数の場合、ファイルのモードビットのビット07777(_S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO
_)のみが比較に参加します。 modeの前にダッシュ( "_-
_")が付いている場合、このプライマリは、少なくともすべてのビットがtrueであると評価されます。モードはファイルのモードビットで設定されます。 modeの前にプラス( "_+
_")が付いている場合、このプライマリは、modeはファイルのモードビットに設定されます。それ以外の場合、modeのビットがファイルのモードビットと完全に一致する場合、このプライマリはtrueと評価されます。シンボリックモードの最初の文字はダッシュ( "_-
_")ではない場合があることに注意してください。
SUSv3では指定されていませんが、少なくとも* BSDとLinux間で移植可能です(他のテストは行っていません)。
さて、あなたが好きなら Rube Goldbergデバイス 、あなたは使うことができます:
ls -l | grep '^[^d]\(..x\|.\{5\}x\|.\{8\}x\)' | awk '{ print $8 }'
これは現在のディレクトリのみをリストしますが。