0

かなり単純だと思います。bashコマンドを見つけたいだけです。たとえば、「user」という語句を含む、どのコマンドが存在するかを知りたい場合。

したがって、探しているコマンドは、ユーザーを含むすべてのコマンドの場所を出力するか、その名前でどのコマンドが存在するかを教えてくれるはずです。それでいいだろうけど。

こことグーグルで検索しましたが、どちらも「検索」コマンドについて話しているだけです。

4

4 に答える 4

1

「user」を含む PATH 内の実行可能ファイルまたはシンボリック リンクのリスト:

find $(echo $PATH | tr ':' ' ') -maxdepth 1 \( -type f -or -type l \) -name '*user*' -executable

出力例:

/usr/bin/users
/usr/bin/xdg-user-dir
/usr/bin/xdg-user-dirs-gtk-update
/usr/bin/users-admin
/usr/bin/xdg-user-dirs-update
/bin/fuser
/bin/fusermount
/bin/ntfs-3g.usermap
/usr/sbin/deluser
/usr/sbin/adduser
/usr/sbin/useradd
/usr/sbin/userdel
/usr/sbin/usermod
/usr/sbin/newusers

また、wormsparty のバリアントよりもはるかに高速です (問題はありません:P)。結果はほぼ同じです(彼もディレクトリを返します、AFAIK)

于 2012-09-13T08:56:49.547 に答える
0

いくつかのパスのスペースをチェックし、より強力な正規表現で改善したい場合がありますが、これでうまくいきます:

#!/bin/sh

if [ $# -ne 1 ]; then
   echo "Usage: $0 pattern"
    exit 1
fi

for x in `echo "${PATH}" | sed 's/:/ /g'`; do
    for y in $x/*; do
        if [ -x "$y" ]; then
            if [ `echo "$y" | grep $1 | wc -l` -ne 0 ]; then
                echo "$y"
            fi
        fi
    done
done
于 2012-09-13T08:57:02.753 に答える