J'ai essayé de courir
locate *.orig | xargs rm
mais ça disait No such file or directory
J'ai vu des façons de le faire, find
mais Locate renvoie le chemin complet de l'objet, donc cela devrait être possible
bash
gnome-terminal
rm
soldat.moth
la source
la source
| while read
car mon répertoire personnel est plein de fichiers avec des espaces.*.orig
, le shell étendra le motif à, disonsfile1.orig file2.orig ...
, de sorte quelocate
la chaîne exacte ne sera pas vue*.orig
comme il se doit.tr '\n' '\0'
.Ce n'est
xargs
pasxarg
la source
La commande
locate *.orig | xargs rm
fonctionne réellement, mais ce qui se passait, c'est que lalocate
recherche de*.orig
fichiers dans la poubelle etrm
crache l'erreurNo such file or directory
lors de la tentative de suppression de fichiers dans la poubelle.la source
Locate ne fait pas le globbing, mais le shell le fait. Le shell étend * .orig à ce qu'il trouve dans le répertoire courant qui correspond à * .orig.
Utilisez simplement
et si cela vous donne ce dont vous avez besoin
ou, comme l'enzotib l'a mentionné
si vous avez des espaces dans les noms de fichiers.
la source
Une astuce: enregistrez tous les chemins dans le fichier tmp. puis, bouclez dessus:
la source