2012-10-02 12:18:00 +0000 2012-10-02 12:18:00 +0000
39
39
Advertisement

Comment supprimer tous les fichiers commençant par une certaine chaîne dans Linux

Advertisement

Je dois trouver tous les fichiers commençant par le nom NAME dans une arborescence de répertoires et supprimer tous ces fichiers à l'aide d'une seule commande shell.

Advertisement
Advertisement

Réponses (7)

68
68
68
2012-10-02 12:19:23 +0000

Supprimez tous les fichiers du répertoire courant et de ses sous-répertoires où le nom du fichier commence par “foo” :

$ find . -type f -name foo\* -exec rm {} \;

NB : à utiliser avec précaution - faites une sauvegarde d'abord - faites également une copie de sécurité d'abord, par exemple

$ find . -type f -name foo\*

vous indiquera simplement les noms des fichiers qui seront supprimés.

29
29
29
2016-07-28 10:51:24 +0000

J'ai essayé de cette façon, ça marche pour moi, essayez sous le commandement.

rm -rf Example*

ici “Exemple” est le texte qui est commun à tous les fichiers.

11
Advertisement
11
11
2012-10-02 12:22:38 +0000
Advertisement

Vous pouvez utiliser find :

find . -name "name*" -exec rm {} \;
3
3
3
2017-02-24 03:17:48 +0000

Avec l'option globstar (activer avec shopt -s globstar) :

rm -f **/NAME*

**/ s'étend à ./, */, */*/, */*/*/, NAME etc. Si vous avez un nom de répertoire commençant par rm, la commande se plaindra que rm ne peut pas supprimer les répertoires, mais c'est tout.

Remarquez que cela peut entraîner des limitations de longueur de la ligne de commande si le glob correspond à de nombreux fichiers.

Alternativement, avec aussi peu d'invocations de + que possible, mais sans aucune limitation de longueur de ligne de commande :

find . -type f -name 'NAME*' -exec rm -f {} +

(Remarquez le \; au lieu de -exec pour fermer l'instruction 0x6&).

3
Advertisement
3
3
2012-10-02 12:48:10 +0000
Advertisement

Pour supprimer tous les fichiers qui ont un nom, vous pouvez l'utiliser :

find . -name 'name*' -exec rm {} \;
```.
2
2
2
2018-08-27 16:28:09 +0000

find . -name 'foo'* -type f -delete semble être la réponse la plus simple.

Vous pouvez l'exécuter sans le drapeau -delete avant pour voir quels fichiers seront supprimés.

-1
Advertisement
-1
-1
2015-03-30 06:04:34 +0000
Advertisement

Recherchez le numéro “Inode” du fichier/dossier et supprimez ensuite en utilisant le numéro inode. Voici un exemple :

ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p

find . -inum 3407873 -exec rm -rf {} \;
Advertisement

Questions connexes

6
10
11
5
4
Advertisement