Een tijdelijk bestand aanmaken

Bash:
Een tijdelijk bestand aanmaken

Hoe:

Bash heeft een ingebouwd commando genaamd mktemp om gemakkelijk tijdelijke bestanden te maken:

# Een tijdelijk bestand aanmaken
temp_file=$(mktemp)

# Bekijk ons vers aangemaakte tijdelijke bestand
echo "Tijdelijk bestand aangemaakt: $temp_file"

# Gebruik het tijdelijke bestand
echo "Enige data" > "$temp_file"

# Lees het terug
cat "$temp_file"

# Opruimen: verwijder het bestand wanneer je klaar bent
rm "$temp_file"

Output:

Tijdelijk bestand aangemaakt: /tmp/tmp.Iy5nv69sed
Enige data

Diepere Duik

Tijdelijke bestanden bestaan al in UNIX sinds de eerste dagen, waardoor gebruikers kunnen omgaan met tussenliggende gegevens zonder handmatige opruiming. In Bash scripting is mktemp de moderne aanpak, met opties voor het aanmaken van zowel bestanden (mktemp) als mappen (mktemp -d). Het commando maakt elke keer dat het wordt aangeroepen een uniek bestand, wat bestandscollisieproblemen vermijdt die zich voordoen wanneer meerdere instanties van een script of verschillende scripts tegelijkertijd worden uitgevoerd.

Voor mktemp zouden programmeurs handmatig bestanden aanmaken met namen waarvan zij hoopten dat ze uniek zouden zijn. Botsingen waren gebruikelijk, wat leidde tot gegevensverlies en beveiligingsproblemen. mktemp helpt dit te voorkomen door ervoor te zorgen dat de bestandsnaam uniek is met een mix van voorspelbare patronen en willekeurige tekens. In tegenstelling tot reguliere bestanden zijn deze tijdelijke bestanden bedoeld om na gebruik te worden verwijderd, waardoor het systeem netjes blijft.

Enkele alternatieven voor mktemp zijn het gebruik van /dev/shm voor tijdelijke bestanden in het geheugen, of er zelf een maken met datum en proces-ID ($$), maar deze methoden brengen meer risico’s op conflicten met zich mee.

Zie Ook