Problème script shell sous ubuntu
                    
        
     
             
                    velocity
    
        
    
                    Messages postés
            
                
     
             
            251
        
            
                                    Statut
            Membre
                    
                -
                                     
velocity Messages postés 251 Statut Membre -
        velocity Messages postés 251 Statut Membre -
        Bonjour à tous,   
J'ai par faute extrait le dossier de openssh dans le dossier /usr/src/bin en voulant l'installer et maintenant je veut supprimer les fichier qui ont été ajoutés alors j'ai ecrit un script pour supprimer les fichier avec la date de modification d'aujoud'hui mais j'ai des erreurs que j'ai pas pu résoudre .
Pourriez vous voir c quoi le problème ?
merci d'avance,
            
            
                
            
                
    
    
    
        J'ai par faute extrait le dossier de openssh dans le dossier /usr/src/bin en voulant l'installer et maintenant je veut supprimer les fichier qui ont été ajoutés alors j'ai ecrit un script pour supprimer les fichier avec la date de modification d'aujoud'hui mais j'ai des erreurs que j'ai pas pu résoudre .
Pourriez vous voir c quoi le problème ?
merci d'avance,
#!/bin/sh   
echo "enter day of modification: "   
read day   
for file in 'ls'   
do   
   echo "check change date for: $file"   
   change_date = 'stat $file | grep -i change | cut -d ' ' -f 2'   
   change_day = 'stat $file | grep -i change | cut -d ' ' -f 2 | cut -d '-' -f 3'   
   if [ $change_day -eq $day ]    
   then   
      echo "delete file $file last changed on $change_date ? (Y/N)"  
      read c   
      if [ $c -eq 'y' || $c -eq 'Y' ]    
      then   
         rm $file   
      fi   
   fi   
done   
        A voir également:         
- Problème script shell sous ubuntu
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Ubuntu 32 bits - Télécharger - Systèmes d'exploitation
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
2 réponses
                        
                    salut,
stat permet d'obtenir les dates d'un fichier, pas besoin de grep cut.
Il ne doit pas y avoir d'espaces autour d'un signe égal qui effectue une assignation.
La prochaine fois, donne nous les messages d'erreur.
    
                for elem in 'ls'C'est une mauvaise idée, parce que la boucle for va tourner sur chaque élément retourné par ls, si un nom de fichier a un espace, ça va pas aller.
stat permet d'obtenir les dates d'un fichier, pas besoin de grep cut.
Il ne doit pas y avoir d'espaces autour d'un signe égal qui effectue une assignation.
La prochaine fois, donne nous les messages d'erreur.
                        
                    Essaye ça 
Tu n'as qu'à l'adapter pour change_date.
et je te le dis encore for elem in 'ls', ça craint.
    
                date -d"$(stat -c %y "$file")" +%A)au lieu de stat | grep | cut | cut.
Tu n'as qu'à l'adapter pour change_date.
et je te le dis encore for elem in 'ls', ça craint.
for f in * do echo "$f" done
    vous avez raison pour les nom des fichier avec des espaces, mais j'ai déjà executé le script et ça a marché correctement par change qu'il n'y a pas d'espaces dans les noms  .
Merci comme même pour l'information, j'ai cherché une méthode pareille avant d'ecrire le script mais je l'ai pas trouvé, La prochaine fois je m'en souviendrai .
Merci encore pour votrre aide .
    Merci comme même pour l'information, j'ai cherché une méthode pareille avant d'ecrire le script mais je l'ai pas trouvé, La prochaine fois je m'en souviendrai .
Merci encore pour votrre aide .
 
    
    
    
    
#!/bin/sh echo "enter day of modification: " read day echo "creating backup file.." for file in 'ls' do echo "check change date for: $file" change_date='stat $file | grep -i change | cut -d ' ' -f 2' change_day='stat $file | grep -i change | cut -d ' ' -f 2 | cut -d '-' -f 3' if [ "$change_day" -eq "$day" ] then echo "delete file $file last changed on $change_date ? (Y/N)" read c if [ $c = "y" -o $c = "Y" ] then cp -R $file "backup/$file" if [ -f $file ] then rm $file elif [ -d $file] then rm -R $file fi fi fi done