a) Le script recoit 2 parametres qui sont des chemins ABSOLUS vers des répertoires EXISTANTS. Il faut la liste des fichiers du premier répertoire, la met dans la liste (array) et finallement les copies dans le deuxième (boucle for) , en écrasant au besoin les fichiers du même nom qui y serait présents. Le nom des répertoires fournis se termine déja pas /
exemple home/serger/test/
b) Modifier le script pour qu'il vérifie avant de copier si c'est un fichier ou un répertoire. S'il s'agit d'un répertoire, il doit être créer dans le répertoire de destination. On présume que les répertoires sont vides.
c) On ne présume plus que les répertoires sont vides, alors après avoir créer un répertoire on doit appeler le script (récursivement!) pour copier le contenu du répertoire également.
si quelqu'un peut répondre à ces 3 questions, il me sauverait la vie..
1) Bon le premier c'est en fait juste un cp..mais on va le faire proprement, en prevision de la suite
#!/bin/sh
tool_name="/chemin/vers/mon_cp"
if [ "$#" != '2' ]
then
echo "You must give 2 arguments" echo "${tool_name} /path/to/rep1/ /path/to/rep2/" exit
fi
file_list=`ls $1`
for file in ${file_list}
do
cp $1/${file} $2
done
2) Seule la boucle for change...
for file in ${file_list} do if [ -d "$1/${file}" ] then mkdir $2/${file} else cp $1/${file} $2 fi done
3) Encore une fois, seule la fin change...
for file in ${file_list}
do
if [ -d "$1/${file}" ]
then
mkdir $2/${file}
${tool_name} $1/${file} $2/${file}
else
cp $1/${file} $2
fi
done
Il faut bien sur modifier tool_name par le vrai chemin absolu du script...et le rendre executable (chmod u+x fichier)
Voila...sinon ca revient a faire cp -r /chemin/vers/rep1 /chemin/vers/rep2
[jfdsdjhfuetppo]--Message édité par pipomolo--[/jfdsdjhfuetppo]
---------------
This message is provided AS IS, and comes with ABSOLUTELY NO WARRANTY,
_Faust_
Burn-out général
Posté le 25-03-2002 à 18:30:46
_Faust_
Burn-out général
Posté le 25-03-2002 à 18:45:30
Tant qu'a y être
1) Ajouter le répertoire /home/$USER/labo4/tube1
2) Créer un tube_un dans /home/$USER/labo4/tube1
3) Trouver toutes les lignes du fichier "mon_fichier" qui contient le mot " king" et envoyer-les dans tube_un. Prenez le contenu de tube_un et envoyez-le dans une "LISTE". Envoyer ensuite chaque élément de la "LISTE" dans un fichier. Prenez le fichier et envoyez-le dans une fonction permettant de trier ces mots en ordre alphabétique. Le résultat doit être afficher à l'écran par page de 20 lignes