2011-10-12 19:28:12 +0000 2011-10-12 19:28:12 +0000
94
94

Bestand verwijderen zonder te vragen

Hoe kan ik bestand verwijderen zonder de gebruiker te vragen of hij akkoord gaat met het verwijderen van bestand? Ik schrijf shell script en gebruik de rm-functie, maar het vraagt “remove regular file?” en ik heb dit echt niet nodig. Dank u wel.

Antwoorden (12)

107
107
107
2011-10-12 19:30:00 +0000

Je hebt misschien rm als alias voor rm -i, dus probeer dit:

/bin/rm -f file.log

Om je aliassen te zien kun je alias draaien.

61
61
61
2011-10-12 19:30:22 +0000

De krachtvlag verwijdert alle aanwijzingen;

rm -f {file}

34
34
34
2011-10-12 19:30:10 +0000

Moge de kracht met u zijn - rm -f

6
6
6
2011-10-12 20:52:48 +0000

het yes programma antwoordt herhaaldelijk ja op eventuele aanwijzingen. zodat u het in het interactieve rm programma kunt doorsturen om ook het gewenste effect te krijgen.

yes | rm <filename>

daarentegen, als u niet iets interactueels wilt doen, kunt u

yes n | <something interactive>

doen en dat zal ‘n’ herhalen op de invoerstroom (effectief nee antwoorden op vragen)

5
5
5
2016-07-28 12:15:27 +0000
\rm file

Backslash ` \rm file

Backslash bypasses aliassen.

5
5
5
2011-10-12 20:13:31 +0000

Binnen een shell script zou u rm -f <filename> willen gebruiken, maar u heeft ook de mogelijkheid om de impliciete -i optie voor uw omgeving te verwijderen door unalias rm in uw shell (of profiel) in te voeren.

5
5
5
2011-10-12 19:31:52 +0000

Als je de vereiste rechten hebt om het bestand te verwijderen en je wilt niet worden gevraagd, doe dan het volgende (-f = force):

rm -f file

Als je geen rechten hebt om het bestand te verwijderen, moet je gebruik maken van:

sudo rm -f file
1
1
1
2017-03-26 13:45:49 +0000

Naast het gebruik van de -f parameter, kunt u in plaats daarvan ook het find commando gebruiken, bijv.

find -name file.log -delete
0
0
0
2018-03-29 14:28:49 +0000

Als uw rm een alias heeft voor rm -i, gebruik dan unalias rm;

Gebruik rm -f niet direct, tenzij u echt veel schrijfbeveiligde bestanden wilt verwijderen. Er moet een zeer goede reden zijn om -f te gebruiken.

echter, als je veel schrijfbeveiligde bestanden hebt, geef je misschien de voorkeur aan rsync -r --delete empty/ removed_dir/ voor een hogere snelheid.

0
0
0
2019-09-02 14:37:41 +0000
rm -Rf <folder-to-be-deleted>

-R: Recursief f: kracht, geen prompt

0
0
0
2015-02-25 12:18:42 +0000

Op dit moment werk ik op een systeem, waar de bash-shell de definitie van het rm-commando als functie kreeg in een van de globale configuratiebestanden:

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

Daarom werkte geen van de bovenstaande antwoorden met betrekking tot aliassen. Om het vervelende gedrag tegen te gaan heb ik de rm-functie in mijn .bashrc-bestand

unset -f rm

uitgeschakeld en had ik een soortgelijk probleem als de opener. Ik heb echter geen antwoord gevonden dat melding maakte van de mogelijkheid dat rm verborgen is door een shell-functie. Dus heb ik het antwoord hier toegevoegd in de hoop dat het zou helpen voor iemand die met hetzelfde soort probleem te maken heeft.

Typen van /bin/rm of rm -f de hele tijd is lastig, en kan slechte gevolgen hebben (in het geval van rm -f).

0
0
0
2019-08-12 07:47:40 +0000

Mijn favoriete manier om dit te doen is gewoon het command commando in bash te gebruiken, net zoals je sudo gebruikt. Dit zal je commando zonder aliassen uitvoeren, net zoals het uitgevoerd wordt door /bin/rm (waarschijnlijk is rm een alias als rm -i).

Voorbeeld:

command rm -f /tmp/file.txt