
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチで特定文字が含まれる先...
-
Linux上で固定長ファイルのレイ...
-
cshでfindした一覧をタイムスタ...
-
euctosj を使用してファイル名...
-
shellでsmbclientでファイル転送
-
DOSでテキストファイルの中のあ...
-
scriptコマンドの文字化けについて
-
ファイルの先頭に文字を追加す...
-
sedで置換した値を変数にセット...
-
スクリプトのエラー「unexpecte...
-
batである文字列内に特定の文字...
-
ファイル名についている「-」と...
-
Dirコマンドでフォルダ内ファイ...
-
net use /d の強制実行
-
エクセルの表にヘンな枠が・・・
-
ラズパイで『’test.service’をs...
-
Mac de プログラム
-
TOPコマンドで表示するCPU使用...
-
batファイルの強制終了を回避し...
-
Linux環境 grepで改行コード(CR...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
renameコマンドでファイル名か...
-
【Linux】findコマンドの表示順
-
killコマンド実行時のメッセー...
-
OSXで常に最後に表示される文字...
-
Linuxで*をつかってファイル移...
-
バッチで特定文字が含まれる先...
-
*.txtファイルの最終行だけ参照...
-
コマンドプロンプト net user...
-
【DOSコマンド】for文の中で変...
-
DOSバッチにて外のファイルの指...
-
Linuxでリダイレクトが効かない...
-
grepの使い方(もしくは~)
-
テキスト検索
-
cshでfindした一覧をタイムスタ...
-
sedコマンドに関して
-
Windowsで定期的にUNIXへFTPす...
-
unixのdiffコマンドの動作について
-
scriptコマンドでログファイル...
-
コマンドプロンプトでUSBメモリ...
おすすめ情報