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.