Cette réponse s'inspire largement de certains commentaires. Demandez à votre ami de courir
dir /b/s/a-d > dir.out
Vous courez
find . -print > find.out
Normaliser dir.out
y find.out
:
- uniformiser les fins de ligne (par exemple, NL ou CRLF),
- Supprimer les préfixes communs (
C:\Users\…
y ./
),
- Modifier les barres obliques inverses (
\
) aux barres obliques ( /
) en dir.out
et
- Trier les deux fichiers.
Maintenant, faites
comm dir.out find.out
(Il est possible que vous souhaitiez insérer ces données dans une page d'accueil telle que more
o less
.) Le résultat se compose de trois colonnes :
- Entrées (noms de fichiers) présentes uniquement dans le premier fichier (
dir.out
). Il ne devrait pas y en avoir ; s'il y en a, c'est que votre ami a inclus un fichier qu'il n'a pas reçu de vous, ou que vous n'avez pas complètement normalisé les fichiers. (D'accord, cela dépend de la façon dont votre ami a procédé pour normaliser ses fichiers. dir
la commande dir.out
fichier elle-même pourrait apparaître dans la colonne 1).
- Entrées présentes uniquement dans le deuxième fichier (
find.out
). Il s'agit des noms des fichiers que vous avez sur votre système mais que votre ami n'a pas listés. En d'autres termes, il s'agit des fichiers que vous souhaitez supprimer.
- Les entrées sont présentes dans les deux fichiers. Ce devrait être la même chose que
dir.out
.
S'il y a des faux négatifs en raison de la non-concordance des cas ('A' != 'a'), essayez le comm
avec un -f
option. Vous devrez probablement répéter l'opération sort
avec un -f
également.
Maintenant , type comm -13 dir.out find.out
. Cette syntaxe incroyablement abîmée par le cerveau signifie "donnez-moi toutes les sorties normales sauf les colonnes 1 et 3", en d'autres termes, ne sortez que la colonne 2. Comme indiqué ci-dessus, il s'agit de la liste des fichiers que vous souhaitez supprimer, donc insérez-la dans xargs rm
ou quelque chose comme ça.
Je présume que vous n'avez pas de caractères sauvages et bizarres (comme l'espace, les guillemets, '*', '?', '<', '|', etc.) dans vos noms de fichiers. ) dans vos noms de fichiers. (Cela ne devrait pas poser de problème ; les appareils photo ont tendance à utiliser des noms de fichiers tels que "DSCN1234.JPG").