一致するものがありますが、なぜ「一致が見つかりません」というエラーが発生するのですか?

一致するものがありますが、なぜ「一致が見つかりません」というエラーが発生するのですか?
centos@ip-10-0-5-4 ~ $ sudo ls -l /var/solr/data/new_core/_default/*
zsh: no matches found: /var/solr/data/new_core/_default/*
centos@ip-10-0-5-4 ~ $ sudo ls -l /var/solr/data/new_core/_default/ 
total 4
drwxr-xr-x. 3 root root 4096 Mar 28 07:34 conf

ベストアンサー1

*呼び出される前にシェルによって拡張されますsudo。ディレクトリへのアクセス権がない場合、zshシェルは「一致するエントリが見つかりません」というメッセージを表示します。 shellNOMATCHにシェルオプションが設定zshされていない場合、シェルはパターンを拡張せずに「対応するlsファイルまたはディレクトリがありません」エラーを生成します(ディレクトリに*リテラル名を持つエントリがない場合)。NOMATCHデフォルトで設定されている場合は呼び出されsudo lsません。

次のことができます。

sudo sh -c 'ls -l /var/solr/data/new_core/_default/*'

これにより、現在のシェルがrootとして実行したいコマンドラインを使用して拡張*および呼び出されるのを防ぎます。sh

おすすめ記事