Unixコマンドfindは私がやりたいことをしません。 find ../tmp -name "\*tmp\*"
Unix findコマンドのpath引数にvariableをどのように使用できますか?
それが正しくtmpフォルダ
をして、その名前に "TMP" を含むファイルを出力しますが、私が入力したとき:
dir=../tmp #assign ../tmp as a variable named dir
find ${dir} -name "\*tmp\*"
は、ここで私が入力した場合、状況
です
出力はこう言っています:そのようなファイルやディレクトリはありません
私の推測では、コンマndは、変数 "dir"を探すファイルとして想定していますか? この問題を回避するにはどうすればよいですか? 私がこれを知りたい理由は、スクリプトの引数としてパスを渡すことができるようにするためです。 おかげ
-----------追加コメント
私はbashシェルを使用します。 混乱して申し訳ありません。上記のコードは動作します。実際の問題は、{}構造体を変数に組み込むときです。例えば、 は私が入力すると
DIR = ../{TMP1、TMP3} DIR
見つける$ {DIR} -name「* TMPという名前の変数として#assign ../{tmp1,tmp3} * "
出力には次のようなファイルやディレクトリがありません。 なぜですか?
あなたが投稿した内容*は動作する必要があります。入力したコマンドの正確なリストと正確な結果を表示できますか?どちらのシェルを使用していますか? – FatalError
あなたが入力したものが私のために働く。可変expension '$ {dir}'やリテラル文字列 '../ tmp'のどちらを使っても、まったく同じ出力が得られるはずです。どのように&2つのコマンドを呼び出すときに何か異なるものはないと確信していますか?どちらの場合も現在の作業ディレクトリは同じですか? – Celada
あなたはどのシェルを使用していますか? tcsh? bash? ksh?おそらくbashですが、具体的にしてください。シェルによって、変数を割り当てる方法が異なります。 – ghoti