Comment puis-je supprimer des dossiers à l'aide de regex de terminal Linux
Dire que j'ai des dossiers:
img1/
img2/
Comment puis-je supprimer ces dossiers en utilisant les regex de terminal Linux, qui correspond tout commence avec img?
- Pour l'enregistrement, la coque glob expressions génériques ne sont pas bon d'expressions régulières.
Vous devez vous connecter pour publier un commentaire.
Utiliser recherche pour filtrer les répertoires
Comme il a été mentionné dans un commentaire c'est l'utilisation de shell globs pas regexs. Si vous voulez regex
-maxdepth 1
àfind
comme çafind . -type d -maxdepth 1 -regex "\./img.*" -exec rm -rf {} \;
il sera plus rapide.find . -type d -regex "\./2016\.*"
ne retourne rien ... une idée?find . -type d -regex ".*/2016.*"
{}
est remplacé par le nom de fichier et\;
marque la fin de la commande passée à exec (si vous n'avez pas la fuir, il serait pris par le shell)$ find . -type d -regex "^\./img.*$" -exec rm -rf {} +
vous pouvez utiliser
qui devrait supprimer tous les fichiers et répertoires dans le répertoire de travail courant de démarrage avec img
EDIT:
pour supprimer uniquement les répertoires dans le répertoire de travail courant de démarrage avec img
^img.*
. Sans^
le nom d'un personnage peut avoir des img par exemple sur le milieu.Dans le processus de la recherche pour savoir comment utiliser les expressions régulières pour supprimer les fichiers spécifiques à l'intérieur d'un répertoire que je suis tombé sur ce post et l'autre par Mustafa Mahmoud: http://mah.moud.info/delete-files-or-directories-linux
Ce code permet de supprimer quoi que ce soit, y compris les quatre derniers chiffres de 0 à 9, dans mon cas, les dossiers avec les mois et les dates allant de Jan2002 - Jan2014:
Espère que ça aide quelqu'un là-bas à la recherche autour pour savoir comment supprimer des fichiers individuels au lieu de dossiers.