• ベストアンサー

UNIXで2つのdir内のファイルのチェック

UNIXで2つのdir内に存在するファイルのチェックをやりたいのですが なさけないことにいい方法が思いつきません。 具体的にはDIR-A内に存在するファイルが全てDIR-B内に存在するか どうかをチェックして存在してないものを出力といったことです。 方法はUNIX上で実行できればとくに問いません。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

DIR-Aに存在するがDIR-Bに存在しないファイル名を出力すると言うことですかね。 comm -23 <(ls -A1 DIR-A) <(ls -A1 DIR-B) ついでに、DIR-Bに存在するがDIR-Aに存在しないファイル名は、 comm -13 <(ls -A1 DIR-A) <(ls -A1 DIR-B) 両方に存在するファイル名は、 comm -12 <(ls -A1 DIR-A) <(ls -A1 DIR-B) シェルが、<( ) の構文をサポートしていない場合は、 ls -A1 DIR-A >tmp-a ls -A1 DIR-B >tmp-b comm -23 tmp-a tmp-b のようにしてください。

Kasaoka-Taroh
質問者

お礼

こんな便利な方法があるのですね。勉強になりました。 ありがとうございます。

その他の回答 (1)

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

diff directoryA directoryB

関連するQ&A

  • DIR関数

    VB6で、あるフォルダ(A)に存在するCSVファイル(複数ファイル)が、別のフォルダ(B)に存在しているかチェックを行いたいのでうが、DIR関数を2重に使用すると、フォルダAの次への読み込み時にエラーになってしまいます。 何か別の方法はあるのでしょうか?

  • UNIX ファイル存在チェックの方法

    お世話になります。 UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。 ■プログラム if (-f "text_file_*.txt") then echo "存在している" else echo "存在していない" endif ■問題点 IF文中の比較対照ファイルとして、ワイルドカード(*)を 指定しているのですが、文字列として認識されてしまいます。 この方法でワイルドカードとして処理を実行する方法はあるでしょうか? もしくは代替案などありましたら、ご教示いただきたいです。 よろしくお願いします。

  • File = Dir は何をしてるのでしょう?

    vbaです。 ---------------------------- Sub フォルダの中にあるファイルとフォルダを書き出す() Dim File As String File = Dir("C:\*.*", vbDirectory) Do While File <> "" Debug.Print File File = Dir Loop End Sub ---------------------------- このコードを実行すると、 フォルダの中にあるファイルとフォルダを書き出されるのですが File = Dir のコードは何をしているのでしょうか? 引数なしのDirの使い方もよくわからないし File = Dirがある事によってどういう効果があるのかもわかりません。

  • cronを使ってis_dir関数がうまく動かない

    cronを使用して、ディレクトリが存在した場合には、あるスクリプトを実行するようなスクリプトを考えています。 【sample.php】 <? $search_dir = "./SCH_Dir"; if(is_dir($search_dir)) { echo "Dir"; } else { echo "Not Dir or Not Exist"; } ?> sample.phpとディレクトリ SCH_Dirは同一の階層に配置してあります。 上記のsample.phpをWeb上で実行すると、出力結果は "Dir" となり、ディレクトリの存在のチェックが出来ています。 このsample.phpをcron設定した場合、出力結果が "Not Dir or Not Exist" となり、存在していない、という結果が返ってきてしまいます。(結果をメールで受けてっています) なぜcronで実行した場合と結果が違うのか、原因が分からず困っています。 どなたか解決法をご教授ください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • DOSコマンドでのDIRコピー

    DOSコマンドでdirの階層構造を保持したままあるdirの下階層全てをあるdirの下へコピーするにはどのようにすればいいのでしょうか? 例えば、dir-aの下にdir-b1、dir-b2が存在している場合dir-aを全てdir-c の下へコピーしたいということです。(できれば1コマンドで)

  • UNIX C ファイル出力

    UNIX Cにてあるテキストファイルの中身(1行分)を、別のテキストファイルに出力したいのですが、どうすれば、いいでしょうか。 例。A.txt 123 yano 200612   ↓ B.txt 123 yano 200612

  • teeコマンドを使わずにUNIXで標準出力とエラー出力を、ファイルと標準出力の両方に出すには?

    UNIX系のBシェルで、 コマンドを実行して、 その標準出力とエラー出力をログファイルに出力し、 かつ、同じものを標準出力にも出力したいのです。 また、その後でコマンドの戻り値$?をエラーチェックしたいです。 このため、パイプでteeコマンドを使用すると戻り値が上書きされてしまいます。 いったん一時ファイルに出力するしかないのでしょうか?

  • C++ で DIR コマンド

    MS-DOSプロンプトで dir と入力すれば、フォルダ内の 様子がMS-DOSプロンプトに表示されるけど、 C++ で、MS-DOSプロンプトで dir と入力したのと同じ 様にするにはどういうプログラムを作ればいいのですか? 別の言い方で書くと、実行すればMS-DOSプロンプトが 起動し、dir と入力されて dirコマンドが実行される というファイルを作るソースが知りたいんです。 dirコマンドが実行される対象となるディレクトリは どこでもいいんです。 C++ のプログラムでも、ディレクトリ構造を出力することが 出来ると思うんだけど、MS-DOSプロンプトでやってみたいんです。 どうしてそんなことがしたいのかというと、C++ が難しそうだから という理由なんです。 例えば、ファイルコピーを自動化するプログラムを作る時、 C++ のプログラムの出力をMS-DOSプロンプトへ渡す方法を知っていれば、 MS-DOSプロンプトでのコピーは copy コピー元 コピー先 という簡単な書式だから、ファイルコピーを自動化するプログラムも 簡単に作れそうだなと思ったんです。

  • unix で 文法チェック

    unix で英文の文法チェックをするときはどうしたらよいのでしょうか?(スペルチェックは ispell などで できるのですが) windows 上の word から移行して、unix 上で latex を使うようになりつつあります。 word では F7 キーを押すだけでしたが、unix 上で grammer check をする方法はないでしょうか?できれば word に戻りたくないので。

  • UNIXのコマンド教えて下さい。

    UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!

専門家に質問してみよう