Dossier intelligent Exclure un dossier
En fin de compte, je veux que le résultat de cette commande find soit un dossier intelligent.
Les critères ne sont pas si compliqués:
- le nom doit être "README.md"
- le type doit être un fichier
- le chemin ne doit pas contenir "node_modules"
find /Users/me/Documents -type f -name README.md -not -path "*/node_modules/*"
Le problème est que la liste d'opérateurs de critères des dossiers intelligents semble manquer d'une does not contain
option.
Les options disponibles sont:
- allumettes
- contient
- commence par
- se termine par
- est
- n'est pas
Est-il possible d'accomplir cela et si oui, comment?
Modifier 1
J'ai trouvé qu'en maintenant la touche d'option je suis capable d'ajouter une clause de négation aux critères de recherche de dossier intelligent mais je n'arrive pas à exclure avec succès le dossier node_modules. On ne sait pas quels critères utiliser, mais aucun de ceux que j'ai essayés ne semble fonctionner:
- Conteneur de documents
- Contenant des noms de dossier
- Nom de dossier
J'ai essayé de les combiner avec les opérateurs suivants:
- contient
- allumettes
et avec les termes suivants:
- node_modules
- node_modules
au cas où il prend en charge les recherches génériques.
J'ai essayé toutes les combinaisons des filtres, opérateurs et termes ci-dessus.
La documentation est si pauvre sur le sujet.
la source
Réponses:
Il semble que kMDItemPath ne puisse pas faire ce dont vous avez besoin:
pas de résultats en vedette dans les recherches contre kmditempath
Certaines alternatives potentielles sont discutées ici:
comment-localiser-un-fichier-dans-spotlight-using-folder-and-file-name
la source
Il existe une solution de contournement, mais ce n'est pas très joli. Il servira cependant à vos fins si vous souhaitez simplement accéder à vos fichiers README dans un dossier (en utilisant les critères que vous avez spécifiés), et avoir une idée d'où ils viennent.
L'idée est d'utiliser votre script shell pour trouver les bons fichiers, puis de collecter des alias pour chaque fichier dans un répertoire. Nous renommons ensuite les alias pour nous dire à quel répertoire parent appartient le fichier d'origine.
L'Applescript pour ce faire est ci-dessous. Cela a l'air moche ici, mais essayez de le coller dans Script Editor et de le compiler, et vous devriez pouvoir voir la logique.
la source