「find」コマンドの式がシェルで解釈されないように保護する方法は?

「find」コマンドの式がシェルで解釈されないように保護する方法は?

このコマンドをシェルで実行したいと思いますfind . '! -name *.*'bash期待どおりに動作しません。 (-name *.*現在のディレクトリにあるfalseのすべてのファイル、つまり名前にドットがないファイルを一覧表示する必要があります。)代わりに、逆説的に、行の末尾にディレクトリ内のすべてのファイルのリストを印刷しますfind: "! -name *.*": file or directory not found。 2つのアポストロフィ(U + 0027)文字で保護されていますが、問題は式に対するシェルの解釈にあるようです。表現を保護する方法はありますか?安定してどんな表現ですか?

私はこのバージョンを使用しています:find(GNU findutils)4.4.2

ベストアンサー1

OPがexprを引用したので、'! -name *.*'2番目のパラメータになりますfind。今の findアイデアは、2ディレクトリ名、つまり.奇妙な名前を渡して、! -name *.*2つのファイル/サブディレクトリを再帰的に忠実にリストしようとすることです。これまでは.素晴らしかったですが、今は狂気のカタログについてもっと深く学ぶ時間です。! -name *.*あなたがそれを持っていない場合はできません。それでもfind好きなようにはなりません。

これを行うには、適切な場所に見積もりを作成する必要があります。

find . ! -name '*.*'

または

eval find . '! -name "*.*"'

おすすめ記事