などのfind
ファイル属性で検索できます。-type
-executable
既存のファイルリストから同様の機能を取得するにはどうすればよいですか?たとえば、出力dpkg -L <package_name>
。
パイプ tols -ld
またはfile
then to がgrep
正確でも正確でもありません。
awk
正確な結果を得るために出力を解析できると思いましたが、ls -ld
これは過度に複雑に見え、実際には一般的な解決策ではありません。最良のシナリオは、find
この目的自体として使用できることです。
ベストアンサー1
努力する:
stat --printf="'%n' is a %F\n" $(dpkg -L grep)
ディレクトリのみを表示するには、次の手順を実行します。
stat --printf="'%n' is a %F\n" $(dpkg -L grep) | grep ' is a directory$'
または
for f in $(dpkg -L grep)
do
operms=$(stat --format='0%a' "$f")
if [ $(( $operms & 0111 )) -ne 0 ]
then
echo "$f: executable";
fi
done
可能性は無関心です!
最初の2つの形式は2つのプロセスしか起動しないので、一般的には理想的だと思います。ただし、ループはファイルfor
ごとに1つのプロセスを開始します。stat
stat
この方法でアクセスできるすべてのプロパティについては、マニュアルセクション1のマンページを参照してください。
言及してくれた@Jeff-Schallerに感謝しますstat
。