Je recherche une solution à utiliser en réponse à "rm: supprimer le fichier normal protégé en écriture [x]?"
Je pensais émettre un caractère suivi d'un retour de voiture plusieurs fois, en bashrc. Comment fait-on cela?
Je recherche une solution à utiliser en réponse à "rm: supprimer le fichier normal protégé en écriture [x]?"
Je pensais émettre un caractère suivi d'un retour de voiture plusieurs fois, en bashrc. Comment fait-on cela?
Réponses:
Modifier en fonction de la question mise à jour:
Pour éviter d'être invité à supprimer des fichiers, ajoutez l' -foption ("force"):
rm -f /path/to/file
Ceci a un effet secondaire dont vous devez être conscient: Si l'un des chemins donnés n'existe pas, il ne le signalera pas et il retournera avec succès:
$ rm -f /nonexistent/path
$ echo $?
0
Réponse originale:
Voici une solution simple:
yes "$string" | head -n $number | tr $'\n' $'\r'
yesrépète n'importe quelle chaîne que vous lui attribuez à l'infini, séparées par des nouvelles lignes. headl'arrête après le $numbertemps et trconvertit les nouvelles lignes en retours à la ligne. Vous pourriez ne voir aucune sortie à cause des retours chariots, mais le passer à cette commande (in bash) devrait l'illustrer:
printf %q "$(yes "$string" | head -n $number | tr $'\n' $'\r')"
Les utilisateurs ne bashpouvant pas diriger le résultat vers od, hexdumpou xxdvoir les caractères réels retournés.
L’autre problème que j’ai rencontré de temps en temps est rmson alias rm -i, comme dans le fichier / etc / bashrc:
alias rm='rm -i'
Dans ce cas, vous pouvez unalias rmutiliser cette astuce que j'ai découverte il y a des années. Vous pouvez placer une barre oblique inversée devant une commande avec alias, pour ignorer l'alias une seule fois, par exemple:
\rm somefile
Vous pouvez en apprendre plus sur les alias en lisant un article sur Nixcraft .
rmest codé en dur pour demander "de manière interactive" (invite en attente d'une entrée utilisateur) sur les fichiers protégés en écriture. il existe deux méthodes pour empêcher rmde demander:
rm -rf somedir
et
rm -r --interactive=never somedir
(les deux fonctionnent aussi sans -rsuppression de fichiers au lieu de répertoires)
explication:
-ffait rmpour "ignorer les arguments et les fichiers non existants, ne jamais inviter".
--interactive=neverfait ce qu'il dit: ne soyez jamais interactif. en d'autres termes: ne jamais demander.
la différence entre -fet --interactive=neverest cette partie: "ignorer les fichiers et les arguments inexistants".
comparer:
$ rm -rf nonexistingname
$ echo $?
0
et
$ rm -r --interactive=never nonexistingname
rm: cannot remove 'nonexistingname': No such file or directory
$ echo $?
1
La différence est surtout intéressante lorsque vous écrivez des scripts dans lesquels vous ne voulez jamais rmêtre interactif, mais voulez quand même gérer les erreurs.
résumé: utilisation en ligne de commande rm -rf. dans les scripts utilisent rm -r --interactive=never.
pour obtenir une réponse à la question indiquée ("Comment éviter la nécessité d'émettre plusieurs fois« y »lors de la suppression d'un fichier protégé»), voir https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line / 338860 # 338860
Moi aussi j'ai eu le même problème. La réponse ci-dessus ne concerne qu'un fichier, mais si vous souhaitez ignorer beaucoup de oui.
Vous pouvez utiliser
sudo rm -r /path/to/directory
supprimer tout fichier normal protégé en écriture