:wq! commando in vim

Onlangs las ik hierover het :wq!commando in vim. Ik begrijp niet hoe het een bestand geforceerd kan schrijven zonder schrijfrechten. Op deze manier zou men in theorie rootbestanden kunnen bewerken zonder toestemming. Zou het niet verboden moeten worden? Of schrijft het in een nieuw bestand?
Ik zag een vergelijkbare vraag, maar dat gaat over bewegingen en is heel anders.

P.S. Ik heb het commando niet geprobeerd uit angst om systeembestanden te verknoeien.


Antwoord 1, autoriteit 100%

Als je geen toestemming hebt voor het bestand (je bent bijvoorbeeld niet de eigenaar van het bestand), wordt het schrijven niet geforceerd. Als je wel toestemming hebt voor het bestand, maar het is een alleen-lezen bestand, dan kun je het geforceerd schrijven. Het is alsof u eerst de bestandsmodus wijzigt in beschrijfbaar, uw wijzigingen schrijft en vervolgens de bestandsmodus terugzet naar alleen-lezen.


Antwoord 2, autoriteit 27%

Wees niet bang, vimkan je niet meer rechten geven dan het besturingssysteem je sowieso zou geven. w!is handig om de alleen-lezen modus te overschrijven als u een bestand hebt geopend met de opdracht vim -Rof als u het bestand alleen-lezen had gemaakt voordat u het opende met vimvoor jezelf.


Antwoord 3, autoriteit 9%

Houd rekening met de directoryrechtenjongens! Ik bedoel de map waarin het bestand staat.
Zoals u zou moeten weten, kunt u, als u schrijfrechten heeft voor een map, alle bestanden erin verwijderen en nieuwe bestanden maken, zelfs met dezelfde namen (zoals overschrijven)!

Als je een alleen-lezen bestand aanpast met vien je voegt wq!in om wijzigingen te schrijven, dan zijn er twee situaties:

  1. je hebt schrijf (w) toestemming op de map
    • Het hoofdbestand zou worden verwijderd en nieuw bestand met dezelfde naam zou worden geschreven.
  2. Je hebt geen schrijf (w) toestemming op de map
    • Niets gebeurt! U kunt het bestand niet schrijven of wijzigen, en u moet stoppen: q!.

Zo Schrijfrechten op directory is belangrijk voor alleen-lezen bestanden!

Other episodes