web-dev-qa-db-fra.com

Supprimer le fichier sans demander

Comment puis-je supprimer un fichier sans demander à l'utilisateur s'il accepte de supprimer le fichier? J'écris le script Shell et utilise la fonction rm, mais il demande "supprimer le fichier normal?" et je n'ai vraiment pas besoin de ça. Je vous remercie.

82
hey

Vous pouvez avoir rm avec alias rm -i alors essayez ceci:

/bin/rm -f file.log

Pour voir vos alias, vous pouvez exécuter alias.

96
chown

L'indicateur de force supprime toutes les invites;

rm -f {file}

52
lynks

Que la force soit avec toi - rm -f

27
manojlds

Si vous disposez des autorisations requises pour supprimer le fichier et que vous ne souhaitez pas recevoir d'invite, procédez comme suit (-f = force):

rm -f file

Si vous n'avez pas les autorisations pour le fichier, vous devrez utiliser:

Sudo rm -f file
5
Kassym Dorsel

Dans un script Shell, vous voudriez utiliser rm -f <filename>, mais vous avez également la possibilité de supprimer l'option implicite -i de votre environnement en entrant unalias rm dans votre Shell (ou votre profil).

5
Musannif Zahir

le programme yes répond à plusieurs reprises par oui à toutes les invites. afin que vous puissiez le diriger vers le programme interactif rm pour obtenir également l'effet souhaité.

yes | rm <filename>

à l'inverse, si vous ne voulez pas faire quelque chose d'interactif, vous pouvez faire

yes n | <something interactive>

et qui répètera 'n' sur le flux d'entrée (en répondant non à des questions)

4
mholm815
\rm file

La barre oblique inverse \ contourne les alias.

3
teknopaul

Outre le paramètre -f, vous pouvez également utiliser la commande find à la place, par exemple.

find -name file.log -delete
1
kenorb

Si votre rm est associé à rm -i, utilisez unalias rm;

N'utilisez pas rm -f directement, sauf si vous souhaitez réellement supprimer beaucoup de fichiers protégés en écriture. Il doit y avoir une très bonne raison d'utiliser -f.

Toutefois, si vous avez beaucoup de fichiers protégés en écriture, vous préférerez peut-être rsync -r --delete empty/ removed_dir/ pour une vitesse plus rapide.

0
Zhu Jinxuan

Actuellement, je travaille sur un système où le shell bash a reçu la définition de la commande rm en tant que fonction dans l'un des fichiers de configuration globaux:

 rm  () { /bin/rm -i ${1+"$@"}; }

Par conséquent, aucune des réponses ci-dessus concernant les alias n'a fonctionné. Pour contrer le comportement ennuyeux, je désactive la fonction rm dans mon fichier .bashrc

 unset -f rm

J'ai eu un problème similaire à celui du premier match. Cependant, je n'ai trouvé aucune réponse mentionnant la possibilité que rm soit masqué par une fonction Shell. J'ai donc ajouté la réponse ici dans l'espoir que cela aiderait quelqu'un confronté au même type de problème.

Taper /bin/rm ou rm -f tout le temps est gênant et peut avoir de graves conséquences (dans le cas de rm -f).

0
daw