ファイル属性に基づいたファイルリストのフィルタリング

ファイル属性に基づいたファイルリストのフィルタリング

などのfindファイル属性で検索できます。-type-executable

既存のファイルリストから同様の機能を取得するにはどうすればよいですか?たとえば、出力dpkg -L <package_name>

パイプ tols -ldまたはfilethen 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

おすすめ記事