2010-12-27 13 views
1

Linux(Ubuntu)を使用していますが、ファイルを探していますが、正しく動作していません。 私は「見つける/ホーム/ロークシュ/デスクトップ/ Testing_India2 /テストのようにfindコマンドを使用するとき、私は意味、私は/ワールド/インド/マハラシュトラ/プネ/ファイル名.xmlに(私のディレクトリ構造)にlinux findコマンドが正常に動作しない

をいくつかのファイルを作成しましたWorld/India/Maharashtra/-nameファイル名* .xml -mmin -3000」と入力します。 結果を完全に与えています。 しかし、同じコマンドをWorldまたはIndiaレベルで使用している場合は、 "find/home/lokesh/Desktop/Testing_India2/Test/World/-nameファイル名* .xml -mmin -3000"という意味です。 それでも結果はありません。

私はインドでもMaharashtraレベルのディレクトリがたくさんあり、Maharashtra内とその中にいる可能性があります。私はすべてのディレクトリに作成された各ファイルを見つける必要があります。 私は別のマシンからすべてのフォルダをマウントしました(別のマシンと異なるマシンの状態を意味します)。

誰かがこの問題を解決する方法を知っているなら、できるだけ早く返信してください。

ありがとうございます。

+0

これはプログラミングに関する質問ではありません。私はhttp://ubuntu.stackexchange.com – Oded

答えて

12

ダブルは、シンボリックリンクをたどり作るためにあなたの検索文字列と-Lを引用:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name "filename*.xml" -mmin -30000 
+0

でお尋ねすることをお勧めします。私は同じことを試みましたが、それはまた動作しません。別の方法があれば私に提案してください。 –

+0

-mmin-3000の部分を削除してみてください。 – ismail

+0

私も同じことを試みましたが、うまくいきませんでした。私のfindコマンドに間違いはありますか? –

3

これは「*」ワイルドカードを使用しているとき、私は実際に今日以前に走ったものです。 *を使って*をエスケープしない限り、サブディレクトリを絶えず横断することができませんでした。

は、この試してみて:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name filename\*.xml -mmin -30000 
+0

ここでの問題は、シェルが*を展開しているので、シェルの展開を避けるために引用するかエスケープする必要があるというマニュアルページに記載されています。ああ、また以下の@KlausCPHの答えで。ごめんなさい。 – pbhj

3

はい、あなたは-name引数をqouteダブルまたは*前にバックスラッシュを使用する必要が述べたように。 1つのディレクトリからは動作しませんが、他のディレクトリでうまく動作するのは、*文字がシェルによってファイル名の生成に使用されるためです。これはもちろん、findコマンドが実行される前に行われます。したがって、現在のディレクトリのfilename*.xmlパターンと一致するファイルがある場合は、findが実行される前に置換されますが、これはあなたが望むものではありません。一方、カレントディレクトリにパターンマッチがない場合、*文字は変更されていないfindコマンドに渡されます。 qoutingすることで、シェルファイル名生成から文字列を保護します。

ありがとうございます

関連する問題