このコマンドをシェルで実行したいと思います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 "*.*"'