Apakah ada alat Linux / Unix yang menemukan semua file dalam satu direktori tidak hadir di direktori lain? Pada dasarnya saya mencari diff yang berfungsi pada output ls.
Naskah pendek dan manis juga dihargai.
linux
command-line-interface
filesystems
Willi Ballenthin
sumber
sumber
diff dir1 dir2 | grep "Only"
Pesta:
Bandingkan hanya nama file - bukan isi file.
sumber
ls
, gunakanfind
saja!Seperti yang dikatakan orang di sini, Anda dapat menggunakan DIFF dalam berbagai variasi penggunaan. Atau Anda hanya menggunakan
dirdiff
, yang dimaksudkan untuk apa yang Anda coba! :-)Tetapi jika Anda ingin menyimpan beberapa direktori dalam sinkronisasi maka Anda benar-benar harus melihatnya
rsync
.Salam
sumber
Jika Anda ingin melakukan ini melalui semua sub direktori juga, cara yang baik untuk melakukannya adalah:
Saya lebih suka menggunakan brief, tetapi Anda bisa mengabaikannya jika mau.
sumber
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; done
sumber
Ini bekerja..
sumber
belum dicoba:
sumber
Dennis Williamson punya jawaban yang bagus , tetapi saya perlu melakukan ini secara rekursif. GNU findutils 4.7.0 tidak mengurutkan outputnya, jadi inilah yang saya gunakan
Untuk melakukan ini hanya satu cara, dan menghasilkan daftar file, saya menggunakan ini:
Agar ini berfungsi dengan baik, $ dir1 atau $ dir2 tidak boleh menyertakan trailing slash.
sumber