accueil > Gestion des fichiers et répertoires > mktemp

mktemp : Créer des fichiers/répertoires temporaires

La commande mktemp crée en toute sécurité un fichier ou un répertoire temporaire avec un nom unique. Elle est conçue pour être utilisée dans les scripts lorsqu'un espace de stockage temporaire est nécessaire, sans problèmes de collision de noms ou de sécurité.

Aperçu

mktemp crée des fichiers ou répertoires temporaires avec des noms uniques et imprévisibles, évitant ainsi les problèmes de sécurité et de collision. Il est principalement utilisé dans les scripts shell lorsqu'un espace temporaire sécurisé est requis, et le chemin du fichier/répertoire créé est renvoyé sur la sortie standard.

Caractéristiques principales

  • Génération de noms uniques et imprévisibles
  • Prévention des vulnérabilités de sécurité (protection contre les attaques par conditions de concurrence)
  • Possibilité de créer des fichiers temporaires ou des répertoires temporaires
  • Adapté à l'automatisation des scripts shell

Options principales

La commande mktemp offre plusieurs options principales pour contrôler la manière dont les fichiers ou répertoires temporaires sont créés.

Type de création

Modèle de nom

Commande générée :

Essayez de combiner les commandes.

Description:

`mktemp` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Montre diverses façons d'utiliser la commande mktemp pour créer des fichiers et répertoires temporaires et les utiliser dans des scripts.

Création d'un fichier temporaire de base

mktemp

Crée un fichier temporaire avec un nom unique dans le répertoire temporaire par défaut (généralement /tmp).

Création d'un répertoire temporaire

mktemp -d

Crée un répertoire temporaire en utilisant l'option -d.

Création d'un fichier temporaire avec un modèle spécifique

mktemp /tmp/my_app.XXXXXX

Crée un fichier temporaire en utilisant le chemin et le modèle spécifiés. 'X' sera remplacé par des caractères uniques.

Utilisation d'un fichier temporaire dans un script et suppression automatique

TEMP_FILE=$(mktemp)
if [ -z "$TEMP_FILE" ]; then
  echo "Failed to create temp file"
  exit 1
fi
trap 'rm -f "$TEMP_FILE"' EXIT

echo "Chemin du fichier temporaire : $TEMP_FILE"
echo "Hello from mktemp!" > "$TEMP_FILE"
cat "$TEMP_FILE"
# Le fichier $TEMP_FILE sera automatiquement supprimé à la fin du script.

Stocke le chemin du fichier temporaire créé dans une variable et utilise la commande trap pour supprimer automatiquement le fichier à la fin du script.

Utilisation d'un répertoire temporaire dans un script et suppression automatique

TEMP_DIR=$(mktemp -d)
if [ -z "$TEMP_DIR" ]; then
  echo "Failed to create temp directory"
  exit 1
fi
trap 'rm -rf "$TEMP_DIR"' EXIT

echo "Chemin du répertoire temporaire : $TEMP_DIR"
echo "This is a test file." > "$TEMP_DIR/test.txt"
ls -l "$TEMP_DIR"
cat "$TEMP_DIR/test.txt"
# Le répertoire $TEMP_DIR sera automatiquement supprimé à la fin du script.

Stocke le chemin du répertoire temporaire créé dans une variable et utilise la commande trap pour supprimer automatiquement le répertoire à la fin du script.

Conseils et précautions

Conseils utiles et points à considérer lors de l'utilisation de mktemp.

Nettoyage après utilisation obligatoire

mktemp crée des fichiers temporaires mais ne les supprime pas automatiquement. Vous devez explicitement supprimer les fichiers ou répertoires créés à l'aide de la commande `rm` à la fin du script. L'utilisation de la commande `trap` permet un nettoyage automatique, quelle que soit la manière dont le script se termine.

  • Fichier : `rm "$TEMP_FILE"`
  • Répertoire : `rm -rf "$TEMP_DIR"`
  • Nettoyage automatique : `trap 'rm -rf "$TEMP_PATH"' EXIT`

Considérations de sécurité

mktemp est conçu pour être sûr en évitant les attaques par conditions de concurrence lors de la création de fichiers temporaires. Cependant, si vous stockez des informations sensibles dans les fichiers créés, vous devez définir correctement les permissions du fichier (par exemple, `chmod 600 $TEMP_FILE`) pour empêcher l'accès par d'autres utilisateurs.

Lors de l'utilisation de modèles

La chaîne de modèle doit contenir au moins trois caractères 'X'. Plus le nombre de 'X' est élevé, plus le nom généré est unique.

  • Recommandé: XXXXXX (6 ou plus)
  • Minimum: XXX (3)

Commandes de la même catégorie