• ベストアンサー

「*」記号が1ファイルしか展開しない

「*」記号はシングルクオテーションをつけるかつけないかで展開するファイル数が変わってくるのでしょうか? カレントディレクトリにfileAとfileBがある状態 find . *ile*  →エラー find . '*ile*'  →fileA, fileBが見つかる カレントディレクトリにfileAのみ状態 find . *ile*  →fileAが見つかる find . '*ile*'  →fileAが見つかる 上記動作の仕組みが良くわかりません。 識者の方、解説をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

''で括った場合*を評価するのはfindです *ile*にマッチするファイルを探そうとします (find . *ile* として実行される) 括らなかった場合シェルが展開した上でfindの引数にします (find . fileA fileB として実行される)

関連するQ&A

  • 絶対パスの記述方法について質問です。

      /- - - - - - - - - - - - - - -fileA             |             |             - - - - - -directoryA- - - -fileB  (注)図の左側がツリー構造の上位、右側が下位の階層を表している。/はルートディレクトリです。 このような図の場合にfileAの絶対パスの記述の仕方なのですが、『/fileA』であっているのでしょうか? 解説も添えてもらえると助かります^^; 回答よろしくお願いします!

  • マッチング処理

    はじめまして、今、javaでマッチング処理を実装しているのですが、どうしても上手くいきません、どのようにすれば良いでしょうか? 以下は、要件です。御覧下さい。 「fileAとfileBがあり、それをソートした状態でマッチングを行う。 尚、fileAは、8桁の数字がランダムに格納されており、数は約20000件程度(重複した数字あり)である。また、fileBも同じような形で格納されており、数は30件程度(重複なし)である。これら2つのファイルをマッチングして、新しいファイルに書き出す」 今のところ、fileAとBをtreeSetでソートしたものの、上手くマッチング処理が働かず、出来たファイルは空か、全くマッチングされない状態のファイルが吐き出されるばかりです。正直、ハマりの状態で、googleで調べても、中々当たりのページがありません。どのようにすれば、よいでしょうか?御手数ですが、ご教授下さい。

  • バッチファイルで複数のディレクトリのファイル削除

    バッチファイルで複数のディレクトリの中のCSVファイルを削除しようとしています。 D: ├─folderA | ├─fileA.csv | └─fileB.csv ├─folderB | ├─fileC.csv | └─fileD.csv └─folderC   ├─fileE.csv   └─fileF.csv このような階層で、カレントがD直下です。 D直下からfolderA、folderB、folderCの名前を指定せずに、 D直下にあるすべてのフォルダの中のcsvファイルをバッチで全部削除したいのです。 ワイルドカードを使えばいいのでしょうが、いまいちうまくいきません。 よろしくお願いします。

  • カレントディレクトリ内のファイル検索

    Windows2003環境で、カレントディレクトリ下に存在するwmvファイル数をカウントしたい。UNIXでいう[find ./ -name *.wmv |wc -l] 何かよい方法はありませんでしょうか?

  • phpのshell_exec関数の動作に関する質問です。

    phpのshell_exec関数の動作に関する質問です。 環境はFreeBSD7.1 php5.2.13です。 もともとperlスクリプトtest.cgiがあって、 /path/test.cgi filea fileb (以後これをコマンドラインという) というコマンドラインが正常に実行されることが確認済みです。 このコマンドラインが実行されるとfilebの内容が変化します。 次にphpスクリプトからコマンドラインを実行するために test.phpスクリプトの途中に、 shell_exec("/path/test.cgi $filea $fileb"); と書きました。 (test.cgiではperlライブラリを読み込んでいます。 phpには同等のライブラリがないためにやむを得ずこうしています。) ところがtest.phpを(ブラウザから)実行しても コマンドライン実行後に期待される$filebの変化がありません。 つまりコマンドラインが実行された形跡がないのです。 test.phpスクリプトの$filea, $filebが正しく変数展開されていることは確認済みです。 FireFoxブラウザから見るとtest.phpスクリプトは特にエラーもなく正常に実行されているように見えます。 質問 1 正常に実行できるコマンドラインをphpのshell_exec関数で実行できない理由としてどのようなことが考えられるでしょうか。

    • ベストアンサー
    • PHP
  • find関数が1階層(カレントディレクトリ)にしか利きません。

    find関数が1階層(カレントディレクトリ)にしか利きません。 Active Perl+MS-DOS(WindowsXP)の環境です。 深い階層を持つディレクトリAで  find(\&dirfiletotal,'.'); を実行し、特定のファイル名を検出しています。 なぜかカレントディレクトリ(A)にあるファイルに対してしか動作しません。(結果は正常です。) find関数は再帰的、つまり下の階層も含めてファイル検出するのだと思っていましたが、間違いでしょうか? もし間違いであれば、どのように書き変えればいいか、ヒントをいただけると大変助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Perl
  • [バッチファイル]指定ファイルをサブディレクトリを含み検索・処理する

    ■WindowsXP Pro SP3 ■ディレクトリ構造 カレント ├ディレクトリ1  ├サブディレクトリ1-1   ├対象ファイル1-1  ├サブディレクトリ1-2   ├対象ファイル1-2 ├ディレクトリ2  ├サブディレクトリ2-1 ・ ・ ・ このような状態で指定したファイルすべてを見つけ出し、1つ1つ処理を行っていくバッチファイルの書き方を教えて頂きたいです 具体的には、指定する対象ファイルというのがmpeg2ファイルで、そのmpeg2ファイルをすべてFFmpegを用いてmpeg1へ変換しinputと同一ディレクトリに出力するといった動作です 考えた流れはこんな感じなのですがどうにもうまく動作しなくて困っています ディレクトリ1 ディレクトリ1内のサブディレクトリ1-1 サブディレクトリ1-1内の対象ファイル1-1を見つける 見つかったときはFFmpegの処理をする FFmpegが処理し終わったら次の対象ファイルを探す FFmpegの記述は FFmpeg.exe -i "input_file" "output_file" のような感じなのでパスや相対指定を使えば理想通りの動作をすると思うのですが、いま一つ書き方がわかりません

  • 動作動詞で進行形不可とはどういう事でしょうか?

    ジーニアス英和大辞典の電子辞書版のfind の記述に関する質問です。 動詞を動作動詞と状態動詞の二つだけに分けるのは少し問題があるという事は聞いた事があるのですが、それは棚へ上げて質問させて頂きます。(棚へ上げては解説が不能であれば下ろして下さい) この二つ動詞の大きな違いは 動作動詞は進行形にできる。 状態動詞は進行形にできない。(例外あり) と思っておりました。 find について調べてみると いくつかの意味があり、意味によって動作動詞と状態動詞に分かれます。 それはhave など動詞も同じであり、その事には疑問はないです。 ところが 動作動詞という分類がされているのに進行形不可という記述があります。 例えば「~を見つける、発見する」という意味では動作動詞と分類されているのに進行形不可と書いてあります。 これは何だか矛盾の様に感じてしまうのですが、これはどう説明すれば良いのでしょうか?ご説明をお願いします。 補足ですが、この辞書では Dが四角に囲まれた記号が動作動詞、(dynamic verbs) Sが四角に囲まれた記号が状態動詞 (stative verbs) だそうです。

  • sortコマンドについて

    いつもお世話になっております。 sortコマンドについて質問させて下さい。 現在UNIXコマンドのsortによってファイルをソートしようとしています。 ソート対象となるファイルは下記の通りです。 ファイルの種類:csvファイル ファイルサイズ:80MByte 1レコード長:48Byte レコード数:120万レコード レコード例: 2,1000 ,1,10C0,15,0000000100000000000000000000000000000000 2,1117 ,1,10B0,16,0000000300000000000000000000000100000000 ・ ・ ・ そこで下記のようなコマンドにてソートしています。 sort -t, -k 1,1 -k 2,2 -k 3,3 -k 4,4 < fileA.csv > fileB.csv すると「sort:0653-657ソート中に書込みエラーが発生しました。」と出力され中断してしまいます。 自分なりにsortコマンドについて調べてみたところ、 /usr/tmpディレクトリのファイルシステムがいっぱいになることでコマンドが失敗しているようです。 (一時的にそのディレクトリにソート内容を展開しているようでした) 社内にて/usr/tmpディレクトリのファイルシステムの拡張を求めたところ「できない」と言われてしまいました。 開発の最終段階でのボリュームテストを行ったときの障害でしたので、 処理を大幅に変更するような対処は出来ない状況です。 代替方法などありましたらご教示頂きたいと思います。 以上、宜しくお願い致します。

  • VMware player2.5でVMware toolsを使用する方法

    お世話になります。 VMware player2.5を ホストOS=WindowsXP ゲストOS=CentOS5.2 で使用しています。 現状でもとりあえずゲストOSは使用できるのですが、いろいろと調べたところ、 (1)VMware toolsを使用すればゲストOSが快適に使用できる。 (2)VMware toolsはVMware playerに含まれておらずVMware serverからインストールする。 (3)VMware toolsはゲストOSにインストールする。 らしいことがわかりました。 そのため、VMware server2.0(linux版tar.gz形式)をダウンロードし、ゲストOS内に展開したのですが、それから先、どうすればよいか、わからずにいます。 ゲストOS内で展開したディレクトリをカレントディレクトリにして find . -name *tool* で検索しても、それらしいもの(拡張子rpm等)が見つかりません。 御存知の方、教えて頂けないでしょうか?