|
|
|
|
Bonjour ,
Je voudrais copier certain repertoires et fichiers dans un autre dossier avec un bash, d'ailleur c'est bash ou batch ? Sous linux c'est un .so ?
J'ai vu qu'avec la commande cp on pouvais a l'aide du -l faire un lien dur et -s un lien symbolique, quel est la difference entre les deux ?
Puis par la meme occasion je voudrais qu'il n'ecrase pas les fichiers deja existant mais sans qu'il crée le fichier ou repertoire en le renomment avec un ? à la fin.
Exemple :
cp -vl /home/servercs/hlds_l/cstrike/*.wad /home/servercs/www
cp -vl /home/servercs/hlds_l/cstrike/maps/* /home/servercs/www/maps
cp -vl /home/servercs/hlds_l/cstrike/overviews/* /home/servercs/www/overviews
cp -rvl /home/servercs/hlds_l/cstrike/sound/* /home/servercs/www/sound
cp -rvl /home/servercs/hlds_l/cstrike/sprites/* /home/servercs/www/sprites
cp -rvl /home/servercs/hlds_l/cstrike/models/* /home/servercs/www/models
cp -rvl /home/servercs/hlds_l/cstrike/gfx/* /home/servercs/www/gfx
Merci de votre aide
d'ailleur c'est bash ou batch ? Sous linux c'est un .so ?
cp -l fichier lien ou avec: ln fichier lien quel est la difference entre les deux ? l'un est dur et l'autre symbolique. Le dur est limite a la meme partition et ca apparait comme de fichiers differents (mais ce n'est qu'un fichier!). Avec "ls -l" on voit: -rw-r--r-- 2 user user 0 Mar 2 15:53 lien_dur -rw-r--r-- 2 user user 0 Mar 2 15:53 toto lrwxrwxrwx 1 user user 4 Mar 2 15:55 lien_symb -> toto c'est le "2" entre "-rw-r--r--" et "user user ..." qui indique qu'il s'agit d'un lien dur entre "toto" et "lien_dur". Le symbolique peut etre entre differents partitions et apparait comme lien_symb -> toto ci-dessu. Un lien symbolique est fait avec: cp -s fichier lien ou avec: ln -s fichier lien Puis par la meme occasion je voudrais qu'il n'ecrase pas les fichiers deja existant mais sans qu'il crée le fichier ou repertoire en le renomment avec un ? cp -i... fichiers /cible/ | yes n ou ... sont d'eventuelles autres options de cp.
|
Deja merci kmf de la qualité de ta réponse.
|
Pour de repertoires (et en cas de doute) fais de liens symboliques!! Selon la page man de "ln" l'option -d permet en effet de faire de liens dur pour de repertoires mais il faut etre root pour en avoir le droit et je te deconseillerais fortement ca. On plus tu risques de ne plus reconnaitres ces liens plus tard (pour les liens symbolique c'est evident).
cd /home/servercs/hlds_l/cstrike/ for NOM in *.wad maps overviews \ sound sprites models gfx ; do ln -sv $NOM ../../www/$NOM done Ca devrait suffir. Tu peux taper ca ligne par ligne (le "\" derrier overviews permet de couper de lignes trops longs en morceaux dans une shell, je l'ai mis car le forum coupe lui meme de lignes trop longues et ca ne cree que des ennuies si tu ne reconnais pas que c'est une ligne et pas deux) ou tu peux copier ca dans un fichier disons: "script.sh" et tu fais apres: chmod +x script.sh ./script.sh ca suffit pour l'executer. De facon generale pour automatiser tu mets toutes les commandes dans un fichier ascii, tu le rends executable (avec "chmod +x") et tu l'execute comme une commande. |