No.4ベストアンサー
- 回答日時:
( cd (ディレクトリA) ; find . -print |sort ) > A.txt
( cd (ディレクトリB) ; find . -print |sort ) > B.txt
としてディレクトリリストを作っておいて
diff A.txt B.txt | grep '^<' (Aだけにあるファイル)
diff A.txt B.txt | grep '^>' (Bだけにあるファイル)
でどうでしょうか?
No.6
- 回答日時:
シェルスクリプトの中で使うなら
for name in `cd A ; find . -type f`
do if [ ! -e B/$name ]
then echo $name
fi
done
みたいなのもありかも。
find でAの下のファイルを捜し出して、
if でBの下に有るかどうか調べて
無ければ それなりの処理(上記では echo )をする
No.5
- 回答日時:
diff -r で比較する場合、diff に -I オプション(違いを無視する)があれば、
diff -I ".*" -r A B
で、両方にファイルがあれば内容にかかわらず一致とみなせるので、結果を見るのが楽になります。
#4の方の案のようにファイル一覧の入ったファイルを作って比較するなら、diffでなくcommを使うと便利です。
comm -23 A.txt B.txt →Aにだけあるファイルを出力
comm -13 A.txt B.txt →Bにだけあるファイルを出力
comm -12 A.txt B.txt →両方にあるファイルを出力
No.3
- 回答日時:
diff A B | grep ^A
ってのはダメなんでしょうか?もし純粋にファイル名だけをストリングとして欲しいなら、
diff A B | grep ^A | perl5 -e 'while(<STDIN>) { print "$2\n" if ($_ =~ /^([^:]*): (.*)/);}"
…ダメでしょうか?
No.2
- 回答日時:
diff でもできるような気がします。
[tmp]$ ls a b
a:
aa ad
b:
aa ac
で
[tmp]$ diff -r a b
bだけに発見: ac
aだけに発見: ad
という具合になりますので。
(OS: vine 2.6)
詳細はdiffのマニュアルページを見て戴くとして、、、。
No.1
- 回答日時:
一回だけ調べたいだけなら例えば
ls -l `ls ../A`
みたいな感じでどうですか。
この回答への補足
ご回答ありがとうございます。
おっしゃっているのは、
Bディレクトリに行き、
ls `ls ../A`
で、Aディレクトリにのみ存在するものが、
「No such file or directory」
と表示される
という意味だと思います。
質問に書いてないので申し訳ないのですが、
Aディレクトリの下にフォルダがあって、その中にファイルがあるというような深い階層も比較しようと考えています。
ls `ls ../A`
だと深い階層のファイルは比較できないようです。
lsを使うとすれば -R オプションが関係ありそうだ、という感じはするのですが、
具体的にどうすればよいのかわかりません。
単純なことだと思っているので、複雑にしたくないと思っています。
尚、シェルスクリプトの中で使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- UNIX・Linux Ubuntu でinvalid filenameとなるファイルをコピーする方法 3 2023/06/08 22:26
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- UNIX・Linux ブレース展開の使い方での質問です 2 2023/07/15 16:06
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
【DOSコマンド】for文の中で変...
-
バッチで特定文字が含まれる先...
-
CentOS/リダイレクションに改行...
-
【Linux】findコマンドの表示順
-
sedで置換した値を変数にセット...
-
unixのdiffコマンドの動作について
-
スラッシュ"/"を削除したい
-
コマンドプロンプト net user...
-
コマンドプロンプトでUSBメモリ...
-
UNIXで、ディレクトリを比較し...
-
ファイルの先頭に文字を追加す...
-
renameコマンドでファイル名か...
-
SONYの音楽ソフト「x-アプリ」...
-
コマンドプロンプト tree
-
batである文字列内に特定の文字...
-
Dirコマンドでフォルダ内ファイ...
-
空きIPアドレスを探す方法
-
bashでシングルクォート内の変...
-
TOPコマンドで表示するCPU使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
バッチで特定文字が含まれる先...
-
【Linux】findコマンドの表示順
-
スラッシュ"/"を削除したい
-
Linuxで*をつかってファイル移...
-
【DOSコマンド】for文の中で変...
-
*.txtファイルの最終行だけ参照...
-
DOSでテキストファイルの中のあ...
-
○行目から□行目だけを表示する...
-
renameコマンドでファイル名か...
-
UNIXで、ディレクトリを比較し...
-
CentOS/リダイレクションに改行...
-
dosバッチを使用して昇順に
-
ファイルの先頭に文字を追加す...
-
ファイルリストを印刷したい。
-
標準出力とリダイレクトを同時...
-
コマンドプロンプト net user...
-
unixのdiffコマンドの動作について
-
コマンドプロンプトでUSBメモリ...
-
OSXで常に最後に表示される文字...
おすすめ情報