Existe-t-il des outils Linux / Unix qui trouvent tous les fichiers d'un répertoire non présents dans un autre? Fondamentalement, je recherche un diff qui fonctionne sur la sortie de ls.
Des scripts courts et doux sont également appréciés.
linux
command-line-interface
filesystems
Willi Ballenthin
la source
la source
diff dir1 dir2 | grep "Only"
Frapper:
Comparez uniquement les noms de fichiers - pas le contenu des fichiers.
la source
ls
, utilisezfind
plutôt!Comme les gens vous l'ont dit ici, vous pouvez utiliser DIFF dans diverses variantes d'utilisation. Ou vous utilisez simplement à la
dirdiff
place, ce qui est destiné à ce que vous essayez! :-)Mais si vous souhaitez synchroniser certains répertoires, vous devriez vraiment y jeter un œil
rsync
.Cordialement
la source
Si vous souhaitez également le faire dans tous les sous-répertoires, une bonne façon de le faire est:
Je préfère utiliser le brief, mais vous pouvez laisser cela de côté si vous le souhaitez.
la source
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; done
la source
Cela marche..
la source
non testé:
la source
Dennis Williamson avait une bonne réponse , mais je devais le faire récursivement. GNU findutils 4.7.0 ne trie pas sa sortie, voici donc ce que j'ai utilisé
Pour ce faire d'une seule façon et produire une liste de fichiers, j'ai utilisé ceci:
Pour que cela fonctionne correctement, ni $ dir1 ni $ dir2 ne doivent inclure la barre oblique de fin.
la source