find* は Debian では「*」というファイルを検索しますが、RHEL では検索しません。

find* は Debian では「*」というファイルを検索しますが、RHEL では検索しません。

違いは何ですか?これらのディストリビューションは異なる方法で処理されますか?それとも構成が違いますか?何を比較して調整する必要がありますか?find *ワイルドカード自体を一致させたくありません。

  • *1つのホストも一致するため、結果は異なります。レッドハットホスティングDebian ホスティング*検索もしてみてください。ところで名前はありません*
  • プラットフォーム:Debian Wheezy 7、Red Hat Enterprise Linux 7。常にBashを使用してください。
  • grepになければなりません/etc/etc/hostnameホストごとに1つの一致しか存在できません。Debian ホスティングcat /etc/sysconfig/network待つレッドハットホスティング
DebianHost# cat $(search /etc/ *) 2>/dev/null | grep $(ホスト名)
検索: '*':対応するファイルまたはディレクトリがありません。
Debian ホスティング
Debianホスト#
Debianホスト#
Debianホスト#
DebianHost# ホスト名
Debian ホスティング
Debianホスト#
Debianホスト#
Debianホスト#
Debianホスト#pwd
/根
Debianホスト#
Debianホスト#
Debianホスト#
Debianホスト#ls -1。
Debianホスト#
Debianホスト#
Debianホスト#
DebianHost# grep -r $(ホスト名) /etc
/etc/ホスト名:DebianHost
Debianホスト#
Debianホスト#
Debianホスト#
DebianHost# /etc/ * grep -e “*”を探す
検索: '*':対応するファイルまたはディレクトリがありません。
Debianホスト#

RedHatHost#cat $(search /etc/ *)2> / dev / null | grep $(ホスト名)
ホスト名=RedHatHost
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#
RedHatHost# ホスト名
レッドハットホスティング
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#  
RedHatHost#pwd
/根
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#
RedHatHost# ls -1 。
アナコンダ-ks.cfg
インストールログ
インストール.ログ.syslog
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#
RedHatHost# grep -r $(ホスト名) /etc/
/etc/sysconfig/network:HOSTNAME=RedHatHost
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#
レッドハットホスティング#
RedHatHost# /etc/ * grep -e “*” 検索
レッドハットホスティング#

ベストアンサー1

どちらの場合も、*シェルによって拡張されます。おそらく、シェルがワイルドカードを拡張せずにそのままプログラムに渡すWindowsから来たのでしょう。これはUnixシェルが機能する方法ではありません。

これを確認する最善の方法は、両方のコンピュータecho *で話すことです。 Debian コンピュータは*ファイルがないディレクトリで実行しているので、印刷されるので*プログラムに渡されます。 (私はあなたがワイルドカードが何も一致しないときに呼び出されたプログラムにワイルドカードを渡すBashを実行していると仮定します。)Red Hatシステムは次のように言います。

anaconda-ks.cfg install.log install.log.syslog

つまり、実行中のディレクトリ内の3つのファイル名が、引数を区切るスペースechoとともに印刷に渡されます。

find /etc/ *実際には合理的な命令ではないので、これによって何を達成したいのか分かりませんfind/etcツリー内のすべてのファイルをリストしたい場合はfind /etcそれで十分です。

おすすめ記事