dire que j'ai des dossiers: Comment puis-je supprimer ces dossiers à l'aide de regex à partir de la borne Linux, qui correspond à tout début avec IMG? P> P>
3 Réponses :
Vous pouvez utiliser qui devrait supprimer tous les fichiers et répertoires du répertoire de travail actuel commençant par img p> EDIT: P> pour supprimer Seuls les répertoires dans le répertoire de travail actuel commençant par IMG P> rm -r img*/
Cela supprimera également tout fichier qui correspondra à l'expression, cette commande supprimera tout ce qui correspond à l'expression, non seulement des répertoires.
L'OP dit 'qui correspond à tout ce qui commence par IMG?
Si le nom doit démarrer img, vous devez utiliser ^ img. * Code>. Sans
^ code> nom de caractère peut avoir IMG par exemple au milieu.
Comme ma solution n'utilisait pas une refonte globale complète Regex, comme mentionné dans d'autres commentaires, cela ne se produit pas dans ce cas
Utilisez Rechercher pour filtrer les annuaires
$ find . -type d -regex "\./img.*" -exec rm -rf {} \;
Un moyen d'améliorer cela pourrait consister à ajouter -maxdepth 1 code> à
trouver code> comme celui-ci
trouver. -Type D -maxDepth 1 -regex "\ ./ img. *" -exec rm -rf -rf {} \; code> Ce sera plus rapide.
J'ai beaucoup utilisé votre commande pour nettoyer les anciennes sauvegardes sur nos serveurs de production, mais je ne peux pas comprendre une regex pour obtenir tous les dossiers, sauf le premier du mois (signifie que je veux éliminer chaque dossier de sauvegarde sauf 1 pour chaque mois). Le nom des dossiers est défini comme ceci: "yyyy.mm.dd.hh.mm.ss" (ex: 2016.07.29.03.00.19). Même trouver. -Type d -regex "\ ./ 2016 \. *" code> ne retourne rien ... aucune idée?
essayez trouver. -Type d -regex ". * / 2016. *" code>
{} code> est remplacé par le nom du fichier et
\; code> marque la fin de la commande passée à EXEC (si vous ne vous échappez pas, il serait pris par la coquille)
Autres discussions mentionne également $ trouver. -Type d -regex "^ \ ./ img. * $" -exec rm -rf {} + code>
Dans le processus de recherche sur la manière d'utiliser Regexps pour supprimer des fichiers spécifiques à l'intérieur d'un répertoire, je suis tombé sur ce poteau et un autre de Mahmoud Mustafa: http://mah.moud.info/delete-files-or-directories-linux
Ce code supprimera tout ce qui comprend quatre chiffres consécutifs dans 0 -9, dans mes dossiers de cas avec des mois et des dates allant de jann002 - Jan2014: p> espoir qui aide toute personne à regarder sur le point de supprimer des fichiers individuels au lieu des dossiers. p> p>
Pour l'enregistrement, les expressions génériques de Wildcard de Shell ne sont pas correctes expressions régulières.