J'ai un dossier appelé img
, ce dossier a plusieurs niveaux de sous-dossiers, qui contiennent tous des images. Je vais les importer dans un serveur d'images.
Normalement, les images (ou tout fichier) peuvent avoir le même nom tant qu'elles se trouvent dans un chemin de répertoire différent ou ont une extension différente. Cependant, le serveur d'images dans lequel je les importe nécessite que tous les noms d'images soient uniques (même si les extensions sont différentes).
Par exemple, les images background.png
et background.gif
ne seraient pas autorisées car même si elles ont des extensions différentes, elles ont toujours le même nom de fichier. Même s'ils se trouvent dans des sous-dossiers distincts, ils doivent toujours être uniques.
Je me demande donc si je peux faire une recherche récursive dans le img
dossier pour trouver une liste de fichiers qui portent le même nom (hors extension).
Y a-t-il une commande qui peut le faire?
la source
Réponses:
FSlint est un chercheur de doublons polyvalent qui comprend une fonction pour trouver des noms en double:
Le package FSlint pour Ubuntu met l'accent sur l'interface graphique, mais comme expliqué dans la FAQ FSlint, une interface de ligne de commande est disponible via les programmes dans
/usr/share/fslint/fslint/
. Utilisez l'--help
option pour la documentation, par exemple:Exemple d'utilisation:
la source
ls -l
pour formater sa sortie. Cette question devrait expliquer ce que signifient les couleurs.Comme l'indique le commentaire, cela trouvera également des dossiers. Voici la commande pour le restreindre aux fichiers:
la source
uniq
ne fournit pas de fonctionnalité pour sélectionner un délimiteur de champ différent.sed
obsolète? Ésotérique? Sûr. Obsolète? Pas que je sache. (Et je viens de chercher pour vérifier.)Enregistrez-le dans un fichier nommé
duplicates.py
Rendez ensuite le fichier exécutable:
Exécuter par exemple comme ceci:
Il doit générer des paires de fichiers portant le même nom de base (1). Écrit en python, vous devriez pouvoir le modifier.
la source
P001.ORF
et enP001 (1).ORF
tant que doublons et il semble également penser que 60% de mes fichiers sont des doublons, ce qui est faux, je suis presque sûr.fslint
trouvé un nombre réel de noms de fichiers en double qui est proche de 3%.Je suppose que vous n'avez besoin que de voir ces "doublons", puis de les gérer manuellement. Si c'est le cas, ce code bash4 devrait faire ce que vous voulez, je pense.
Voir http://mywiki.wooledge.org/BashGuide/Arrays#Associative_Arrays et / ou le manuel bash pour obtenir de l'aide sur la syntaxe du tableau associatif.
la source
C'est bname:
Rendez-le exécutable:
Invoquez-le:
Pro:
Con:
la source
Amélioration du script de Loevborg, pour mes besoins (inclut une sortie groupée, une liste noire, une sortie plus propre lors de la numérisation). Je numérisais un lecteur de 10 To, j'avais donc besoin d'une sortie un peu plus propre.
Usage:
python duplicates.py DIRNAME
duplicates.py
la source