In. Yo. Tw. Li.

Comment renommer un fichier dans chaque sous-dossier en utilisant le nom du dossier parent

paper, documents, report

Voici un script bash qui va renommer le fichier texteenligne.html dans chaque sous-dossier en utilisant le nom du dossier parent, après avoir supprimé les caractères spécifiés, et déplacera chaque fichier renommé au niveau du dossier parent :

#!/bin/bash

# Chemin vers le répertoire racine où la recherche doit commencer
ROOT_DIR="/path/to/your/directory"

# Parcours de tous les sous-dossiers contenant le fichier 'texteenligne.html'
find "$ROOT_DIR" -type f -name 'texteenligne.html' | while read -r file; do
    # Obtention du répertoire parent
    parent_dir=$(dirname "$file")
    
    # Obtention du nom du répertoire parent
    parent_name=$(basename "$parent_dir")
    
    # Suppression des caractères indésirables du nom du répertoire
    new_name=$(echo "$parent_name" | sed 's/_assignsubmission_onlinetext//g')
    
    # Nouveau chemin pour le fichier renommé
    new_path="$parent_dir/../$new_name.html"
    
    # Renommage et déplacement du fichier
    mv "$file" "$new_path"
    
    echo "Fichier '$file' renommé et déplacé vers '$new_path'"
done

Étapes à suivre :

Enregistrez le script :

Ouvrez un éditeur de texte (comme TextEdit, en mode texte brut) et collez le code ci-dessus.

Enregistrez le fichier avec une extension .sh, par exemple rename_and_move_files.sh.

Modifiez le chemin de la racine :

Remplacez /path/to/your/directory par le chemin du répertoire où vous souhaitez commencer la recherche.

Donnez les permissions d’exécution au script :

Ouvrez le Terminal.

Accédez au répertoire où vous avez enregistré le script.

Exécutez la commande suivante pour rendre le script exécutable :

chmod +x rename_and_move_files.sh

Exécutez le script :

Toujours dans le Terminal, exécutez le script en utilisant la commande suivante :

./rename_and_move_files.sh

Explications du script :

  • find : Recherche tous les fichiers nommés texteenligne.html sous le répertoire racine spécifié.
  • parent_dir : Obtient le chemin du répertoire parent du fichier trouvé.
  • parent_name : Récupère le nom du répertoire parent.
  • new_name : Modifie le nom du répertoire parent en supprimant les caractères indésirables.
  • new_path : Crée le nouveau chemin pour le fichier renommé au niveau du répertoire parent.
  • mv : Renomme et déplace le fichier vers le nouveau chemin.

Note de précaution :

  • Attention : Cette opération est irréversible. Assurez-vous de bien vérifier le chemin et de comprendre le script avant de l’exécuter pour éviter des erreurs.