De uitvoer van een opdracht opslaan in een bestand in Bash (ook bekend als de Linux- en macOS-terminal)

Wanneer u een commando uitvoert bij de bash-prompt, drukt het normaal gesproken de uitvoer van dat commando rechtstreeks naar de terminal af, zodat u het onmiddellijk kunt lezen. Maar bash stelt je ook in staat om de uitvoer van een commando te “omleiden”, en het op te slaan in een tekstbestand, zodat je de uitvoer later kunt bekijken.

Dit werkt in bash op elk besturingssysteem, van Linux en macOS tot de Ubuntu-gebaseerde bash-omgeving van Windows 10.

Optie één: voer alleen om naar een bestand

Om bash-omleiding te gebruiken, voert u een commando uit, specificeert u het > of >> operator en geef vervolgens het pad op van een bestand waarnaar u de uitvoer wilt omleiden.

  • > leidt de uitvoer van een commando om naar een bestand, waarbij de bestaande inhoud van het bestand wordt vervangen.
  • >> leidt de uitvoer van een commando om naar een bestand, waarbij de uitvoer wordt toegevoegd aan de bestaande inhoud van het bestand.

Technisch gezien leidt dit “stdout” – de standaarduitvoer, dat is het scherm, om naar een bestand.

Hier is een eenvoudig voorbeeld. De ls commando geeft een lijst van bestanden en mappen in de huidige directory. Zo. wanneer u de volgende opdracht uitvoert, ls zal bestanden en mappen in de huidige directory weergeven. Maar het zal ze niet op het scherm afdrukken – het zal ze opslaan in het bestand dat u opgeeft.

ls > /path/to/file

U hoeft het pad naar een bestaand bestand niet op te geven. Geef een geldig pad op en bash maakt een bestand op die locatie.

Als u de inhoud van het bestand bekijkt, ziet u het ls uitvoer van het commando. Bijvoorbeeld de cat commando print de inhoud van een bestand naar de terminal:

cat /path/to/file

Herinner de > operator vervangt de bestaande inhoud van het bestand door de uitvoer van de opdracht. Als u de uitvoer van meerdere opdrachten in één bestand wilt opslaan, gebruikt u de >> operator in plaats daarvan. Met de volgende opdracht wordt bijvoorbeeld systeeminformatie toegevoegd aan het bestand dat u opgeeft:

uname -a >> /path/to/file

Als het bestand nog niet bestaat, zal bash het bestand aanmaken. Anders laat bash de bestaande inhoud van het bestand met rust en voegt de uitvoer aan het einde van het bestand toe.

Wanneer u de inhoud van het bestand bekijkt, ziet u dat de resultaten van uw tweede opdracht aan het einde van het bestand zijn toegevoegd:

U kunt dit proces zo vaak herhalen als u wilt om uitvoer aan het einde van het bestand toe te voegen.

Optie twee: de uitvoer normaal afdrukken en omleiden naar een bestand

Het kan zijn dat u de uitvoer niet wilt omleiden met de > of >> operators, aangezien u de uitvoer van de opdracht niet in de terminal zult zien. Dat is wat de tee commando is voor. Het tee-commando drukt de invoer af die het op het scherm ontvangt en slaat het tegelijkertijd op in een bestand.

Om de uitvoer van een commando naar tee, druk het af op uw scherm en sla het op in een bestand, gebruik de volgende syntaxis:

command | tee /path/to/file

Dit zal alles in het bestand vervangen door de uitvoer van het commando, net als het > operator.

Om de uitvoer van een commando naar tee , afdrukken naar uw scherm en het opslaan in een bestand, maar het aan het einde van het bestand toevoegen:

command | tee -a /path/to/file

Hierdoor wordt de uitvoer aan het einde van het bestand toegevoegd, net als het >> operator.

VERWANT: De beginnershandleiding voor Shell-scripts: de basis

De bash-shell bevat enkele extra, geavanceerde operators die vergelijkbare functies uitvoeren. Ze zijn vooral handig als je bash-scripts schrijft. Raadpleeg het hoofdstuk I / O Redirection in de Advanced Bash-Scripting Guide voor meer gedetailleerde informatie.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in