Je suis en train d'écrire un makefile qui va nettoyer certains fichiers inutiles à la fin de la compilation. Si une cible a déjà été réalisée, elle sautera bien sûr cette cible et le fichier inutile peut ne pas être là. Donc si je fais ceci:
rm lexer.ml interpparse.ml interpparse.mli
Je pourrais obtenir des erreurs parce qu'un des fichiers n'existe pas. Y a-t-il un moyen de dire à rm
d'ignorer ces fichiers?
En lisant la page de manuel, je vois l'option suivante:
-f Tente de supprimer les fichiers sans demander de confirma-
tion, quelles que soient les permissions du fichier. Si le fichier
n'existe pas, ne pas afficher de message diagnostique ou modifier le
statut de sortie pour refléter une erreur. L'option -f remplace
toutes les options -i précédentes.
Cela ressemble à ce que je veux, mais je ne suis pas vraiment sûr de la partie des permissions. Est-il possible de faire cela?
0 votes
Avez-vous essayé
rm
dans un bac à sable ? Il semble que-f
fait exactement ce que vous voulez, indépendamment du globbing.1 votes
Si les autorisations ne le permettent pas, rm le fera avec l'option
-f
encore essayer de le supprimer. Il échouera. Il ne vous dira pas qu'il a échoué. Utile si le nom de fichier est une variable ou un glob.1 votes
Juste pour la complétude : il y a
rm --interactive=never
qui agit commerm -f
sauf qu'il renvoie un code de sortie d'erreur. voir ici pour plus de détails : unix.stackexchange.com/questions/72864/…0 votes
Depuis que vous avez mentionné Makefile dans la question, je pense que la réponse de @robertLi convient le mieux. Précéder de '-' est une manière de faire cela en make; d'autres personnes travaillant avec des Makefiles vont probablement le reconnaître.