- Oui, c’est à cela que sert l’option
-r
(recursive). Supposons, suivant l’arborescence d’exemple, que vous voulez copier le répertoireRapport
et ses sous-répertoires dans le répertoirewww
. Il faut taper :cp -r Rapport/ www/
ou
cp -R Rapport/ www/
- Quand on indique le nom d’un répertoire qui n’existe pas,
cp
considère qu’il s’agit du nom à donner à la copie du premier répertoire (ou fichier). Quand le répertoire existe déjà,cp
considère qu’il s’agit de l’endroit où il faut placer la copie du premier élément (la «cible» : target).Si donc on tapecp -R essai/ tentative/
et que
tentative/
existe déjà, on obtient une copie deessai/
, également appeléeessai/
, placée dans le répertoiretentative/
. - Le programme demande si vous voulez vraiment effacer le fichier déjà existant pour le remplacer par celui dont vous faites la copie.
Attention
Il en est ainsi parce que vous avez un alias de cp
sur cp -i
, qui demande confirmation. Ce n’est pas nécessairement le cas partout.
Pour savoir quels sont vos alias, tapez «alias
» ou allez voir dans votre fichier .alias
. Avec la config conscrits, les alias sont dans le .zshrc
(le fichier de configuration du shell zsh
).
-
cp fichier1 fichier2 fichier3 repertoire/
Les fichiers
fichier1
,fichier2
etfichier3
sont copiés sous leur nom dans le répertoirerépertoire/
, qui doit exister. - Si vous avez un alias de
mv
surmv -i
(cas de la config conscrits), le programme demande si vous voulez réécrire le fichier cible en remplaçant son contenu par celui du fichier de départ :bireme ~ $ ls rapport.tex notes complements bireme ~ $mv notes complements mv: overwrite complements (yes/no)? y bireme ~ $ls rapport.tex complements
- et que vous vous trouvez dans
~/Rapport/docs/
.- Comment faites-vous pour y amener
Rapport.tex
qui se trouve dans le répertoire père ?mv ../Rapport.tex .
Amener le fichier
Rapport.tex
situé dans répertoire père (../Rapport.tex
) dans le répertoire où on se trouve (.
: ici). - Comment faites-vous ensuite pour ramener ce fichier à son emplacement d’origine ?
mv Rapport.tex ..
Amener le fichier
Rapport.tex
situé dans le répertoire courant, dans le répertoire père (..
).
- Comment faites-vous pour y amener
- Il suffit de taper
mv bla/ blo/
Si jamais
blo/
existe déjà,bla/
devient un sous-répertoire deblo/
. - Supposons que l’on veut amener
Rapport.tex
dans le répertoire courant, et l’appelerstage
. On tape :mv ../Rapport.tex stage
Rapport.tex
est à la fois déplacé et renommé; vous pouvez vérifier qu’il n’est plus dansRapport
et qu’il y a désormais un fichierstage
dansdocs/
.Si le fichier d’arrivée existe déjà, on se retrouve dans le cas vu tout au début de cet exercice (remplacement ou non).
- Pour déplacer et renommer, la syntaxe est la même que pour un fichier :
mv ../bla ble/
déplace le répertoire
bla/
du répertoire père dans le répertoire courant, et le renomme enble/
. Si jamaisble/
existe déjà,bla/
y est déplacé sous son nom, et devient un sous-répertoire deble/
. - L’option
-f
(force) sert à renommer le fichier impérativement, même si le fichier cible existe déjà, sans demander confirmation. L’option-i
(interactive) demande confirmation. Des deux options, c’est-f
qui l’emporte :bireme ~ $ ls bla tutu Rapport/ bireme ~ $ alias mv mv='mv -i' bireme ~ $ mv bla tutu mv: overwrite tutu (yes/no)? n bireme ~ $ mv -f bla tutu bireme ~ $ ls tutu Rapport/