IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

renommer le nom de fichier avec un script


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut renommer le nom de fichier avec un script
    Salut Les Amis;
    Je veux crée un script qui me permet de crée un fichier "file" dans un premier temps, et après 24 heurs je veux que le nom de ce fichier ce renomme à
    "file_1" et créé le premier fichier "file"

    |---Crée---|
    |
    v

    file ------>file_1------>file_2-----> ......
    -----(24h)-------(24h)-------(24h)-----


    Comment faire SVP.
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/sh
     
    RADIX="file"
     
    # Rename ${RADIX}_* files, starting with the greatest suffixes
    for i in `ls "${RADIX}_"* | sort -t_ -k2nr`
    do
    	SUFFIX=${i##*_}
    	SUFFIX=$(( SUFFIX + 1 ))
    	echo mv "$i" "${RADIX}_${SUFFIX}"
    done
     
    # Rename $RADIX file
    echo mv "${RADIX}" "${RADIX}_1"
    J'ai mis des echo devant les mv pour ne pas que tu m'en veuille si ça ne marche pas

    Le point délicat, c'est qu'il faut bien faire attention à renommer en premier les fichiers avec le plus grand indice. C'est à ça que sert le "sort -t_ -k2nr" : il trie les noms de fichiers par indices décroissants, en considérant les indices comme des nombres (pour éviter d'avoir file_10 entre file_1 et file_2).

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut
    Merci bcp ;
    En effet le but de cet Question est, crée des log’s propre pour netfilter et après chaque 24 heurs renommer l’ancien log et crées un nouveau log.

    Pour renommer l’ancien fichier j’utilise cron pour exécuter le script de cette tache automatiquement .

    Est-ce que vous avez un autre idées SVP ?

    Merci de votre aide

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    Si tu utilises ulogd, tu peux sans doute passer par /etc/logrotate.conf
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Nom de fichier avec des espaces, problème dans un script
    Par laloupiote dans le forum Shell et commandes GNU
    Réponses: 18
    Dernier message: 08/02/2013, 16h56
  2. Réponses: 9
    Dernier message: 04/02/2010, 16h36
  3. Réponses: 7
    Dernier message: 07/01/2006, 15h18
  4. Réponses: 3
    Dernier message: 12/07/2005, 13h33
  5. changement de nom de fichier avec smartupload
    Par bourvil dans le forum ASP
    Réponses: 2
    Dernier message: 24/05/2004, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo