Skip to main content

2.2 — Créer, copier, déplacer et renommer

Créer des dossiers et des fichiers

mkdir projet
mkdir -p projet/{docs,scripts,sauvegardes}
touch notes.txt
touch "compte rendu.txt"

mkdir -p crée aussi les dossiers parents manquants et ne signale pas d'erreur si le dossier existe déjà. touch crée un fichier vide ou actualise sa date de modification.

Copier

cp source.txt copie.txt
cp source.txt sauvegardes/
cp -i source.txt copie.txt        # demander avant d'écraser
cp -a dossier/ sauvegarde/        # copie récursive en préservant les attributs
cp -av dossier/ sauvegarde/       # mode détaillé

Attention à la barre finale :

cp -a dossier sauvegarde/     # crée sauvegarde/dossier si sauvegarde existe
cp -a dossier/. sauvegarde/   # copie le contenu de dossier dans sauvegarde

Déplacer ou renommer

La même commande réalise les deux opérations :

mv ancien.txt nouveau.txt
mv rapport.pdf Documents/
mv -i fichier.txt destination/
mv -n fichier.txt destination/    # ne jamais écraser

Créer rapidement du contenu

printf '%s\n' "Première ligne" "Deuxième ligne" > notes.txt
echo "Ligne ajoutée" >> notes.txt

> remplace le contenu existant. >> ajoute à la fin.

Comparer avant de remplacer

cmp fichier1.bin fichier2.bin
diff -u ancienne.conf nouvelle.conf

Pour synchroniser des dossiers, rsync offre un mode de simulation très utile :

rsync -avhn source/ destination/  # simulation
rsync -avh source/ destination/   # exécution

Gérer les noms particuliers

Protéger les espaces :

cp -- "rapport final.txt" "rapport final - copie.txt"

Traiter un nom commençant par un tiret :

mv -- -ancien-fichier nouveau-fichier

Vérifications recommandées

file sauvegarde.tar.gz       # identifier le type réel
stat fichier.txt             # métadonnées détaillées
ls -lah destination/

Pour une donnée importante, une copie locale n'est pas forcément une sauvegarde. Une vraie sauvegarde doit idéalement être stockée sur un autre support et testée par une restauration.