Aller au contenu principal

Manipulation des fichiers et dossiers


Table des matières

  1. Créer des fichiers et dossiers
  2. Copier avec cp
  3. Déplacer et renommer avec mv
  4. Supprimer avec rm et rmdir
  5. Wildcards et patterns
  6. Exercices pratiques


1 - Créer des fichiers et dossiers

Créer un fichier vide : touch

# Créer un fichier vide
touch fichier.txt

# Créer plusieurs fichiers
touch fichier1.txt fichier2.txt fichier3.txt

# Mettre à jour la date de modification (si le fichier existe)
touch fichier_existant.txt
remarque

Si le fichier existe déjà, touch met à jour sa date de modification sans modifier son contenu.

Créer un répertoire : mkdir

# Créer un dossier
mkdir mon_dossier

# Créer plusieurs dossiers
mkdir dossier1 dossier2 dossier3

# Créer une arborescence complète (option -p)
mkdir -p projets/2024/janvier

# Créer avec permissions spécifiques
mkdir -m 755 dossier_public

L'option -p (parents)

# Sans -p : erreur si le parent n'existe pas
mkdir projets/2024/janvier
# mkdir: cannot create directory 'projets/2024/janvier': No such file or directory

# Avec -p : crée toute l'arborescence
mkdir -p projets/2024/janvier
# Crée projets/, puis 2024/, puis janvier/

Créer un fichier avec du contenu

# Avec echo et redirection
echo "Bonjour" > fichier.txt

# Avec cat et heredoc
cat > fichier.txt << EOF
Ligne 1
Ligne 2
Ligne 3
EOF

🔝 Retour à la table des matières



2 - Copier avec cp

cp = copy

Syntaxe

cp [options] source destination

Copier des fichiers

# Copier un fichier
cp fichier.txt copie.txt

# Copier vers un autre répertoire
cp fichier.txt /tmp/
cp fichier.txt /tmp/nouveau_nom.txt

# Copier plusieurs fichiers vers un dossier
cp fichier1.txt fichier2.txt /tmp/

Copier des répertoires

# Copier un répertoire (option -r obligatoire)
cp -r dossier/ copie_dossier/

# Copier récursivement
cp -r projets/ /backup/projets/

Options importantes

OptionEffet
-r ou -RRécursif (obligatoire pour les dossiers)
-iDemande confirmation avant écrasement
-vMode verbeux (affiche ce qui est copié)
-pPréserve les permissions et dates
-uCopie seulement si source plus récente
-nNe pas écraser les fichiers existants

Exemples pratiques

# Copier avec confirmation
cp -i important.txt /backup/

# Copier en préservant les attributs
cp -p script.sh /usr/local/bin/

# Copier avec affichage détaillé
cp -rv projet/ /backup/projet/

# Copier seulement les fichiers plus récents
cp -u *.log /archive/
attention

Par défaut, cp écrase les fichiers existants sans demander ! Utilisez -i pour être prudent.

🔝 Retour à la table des matières



3 - Déplacer et renommer avec mv

mv = move

mv sert à déplacer ET à renommer des fichiers et dossiers.

Syntaxe

mv [options] source destination

Renommer

# Renommer un fichier
mv ancien_nom.txt nouveau_nom.txt

# Renommer un dossier
mv ancien_dossier nouveau_dossier

Déplacer

# Déplacer un fichier
mv fichier.txt /tmp/

# Déplacer et renommer
mv fichier.txt /tmp/nouveau_nom.txt

# Déplacer plusieurs fichiers
mv fichier1.txt fichier2.txt /destination/

# Déplacer un dossier
mv mon_dossier/ /autre/emplacement/

Options importantes

OptionEffet
-iDemande confirmation avant écrasement
-vMode verbeux
-nNe pas écraser les fichiers existants
-uDéplace seulement si source plus récente
-fForce (pas de confirmation)

Exemples pratiques

# Déplacer avec confirmation
mv -i important.txt /backup/

# Renommer plusieurs fichiers (avec for)
for f in *.txt; do mv "$f" "${f%.txt}.bak"; done

# Déplacer tous les logs
mv -v *.log /archive/

# Organiser par extension
mv *.jpg images/
mv *.pdf documents/
astuce

mv ne copie pas les données, il change juste l'emplacement. C'est instantané sur le même système de fichiers !

🔝 Retour à la table des matières



4 - Supprimer avec rm et rmdir

rmdir - Supprimer un répertoire vide

# Supprimer un dossier vide
rmdir dossier_vide

# Supprimer plusieurs dossiers vides
rmdir dossier1 dossier2

# Supprimer l'arborescence vide
rmdir -p a/b/c # Supprime c, puis b, puis a (si vides)
remarque

rmdir ne fonctionne QUE sur les répertoires vides. Pour supprimer un dossier avec du contenu, utilisez rm -r.

rm - Supprimer fichiers et dossiers

# Supprimer un fichier
rm fichier.txt

# Supprimer plusieurs fichiers
rm fichier1.txt fichier2.txt fichier3.txt

# Supprimer un répertoire et son contenu
rm -r dossier/

# Forcer la suppression (sans confirmation)
rm -f fichier.txt

# Combinaison courante
rm -rf dossier/

Options de rm

OptionEffet
-r ou -RRécursif (dossiers et contenu)
-fForce (ignore fichiers inexistants, pas de confirmation)
-iDemande confirmation pour chaque fichier
-IDemande confirmation si >3 fichiers
-vMode verbeux

Précautions

DANGER - rm est IRRÉVERSIBLE !

Il n'y a PAS de corbeille en ligne de commande. Une fois supprimé, c'est définitif !

# TRÈS DANGEREUX - Ne jamais faire :
rm -rf / # Supprime TOUT le système
rm -rf /* # Idem
rm -rf ~/* # Supprime tout le home

Bonnes pratiques

# 1. Utiliser -i pour confirmer
rm -ri dossier/

# 2. Vérifier d'abord avec ls
ls dossier_a_supprimer/
rm -r dossier_a_supprimer/

# 3. Utiliser le chemin complet
rm -r /home/user/tmp/dossier/

# 4. Créer un alias de sécurité (dans .bashrc)
alias rm='rm -i'

🔝 Retour à la table des matières



5 - Wildcards et patterns

Les wildcards (jokers) permettent de sélectionner plusieurs fichiers avec un pattern.

Les wildcards principaux

WildcardSignificationExemple
*N'importe quels caractères*.txt = tous les .txt
?Un seul caractèrefichier?.txt = fichier1.txt, fichierA.txt
[abc]Un caractère parmi a, b ou cfichier[123].txt
[a-z]Un caractère dans la plagefichier[a-z].txt
[!abc]Aucun de ces caractèresfichier[!0-9].txt

Exemples avec *

# Tous les fichiers .txt
ls *.txt

# Tous les fichiers commençant par "log"
ls log*

# Tous les fichiers contenant "2024"
ls *2024*

# Copier tous les .jpg
cp *.jpg images/

# Supprimer tous les .tmp
rm *.tmp

Exemples avec ?

# Fichiers avec un seul caractère avant .txt
ls ?.txt
# Résultat : a.txt, 1.txt, etc.

# Fichiers log avec un chiffre
ls log?.txt
# Résultat : log1.txt, log2.txt, etc.

Exemples avec []

# Fichiers avec chiffre
ls fichier[0-9].txt

# Fichiers avec lettre majuscule
ls fichier[A-Z].txt

# Fichiers avec a, b ou c
ls fichier[abc].txt

# Tout SAUF les chiffres
ls fichier[!0-9].txt

Combinaisons

# Tous les fichiers commençant par a-f
ls [a-f]*

# Fichiers .txt ou .log
ls *.txt *.log

# Images jpg ou png
cp *.[jp][pn]g images/
# ou plus simplement
cp *.{jpg,png} images/

Expansion d'accolades

# Créer plusieurs fichiers
touch fichier{1,2,3,4,5}.txt
# Crée fichier1.txt, fichier2.txt, etc.

# Créer une séquence
touch fichier{01..10}.txt
# Crée fichier01.txt à fichier10.txt

# Copier avec renommage
cp fichier.txt{,.bak}
# Équivalent à : cp fichier.txt fichier.txt.bak

🔝 Retour à la table des matières



6 - Exercices pratiques

Exercice 1 : Créer une structure

# Créez cette arborescence :
# projet/
# ├── src/
# ├── docs/
# ├── tests/
# └── README.md

mkdir -p projet/{src,docs,tests}
touch projet/README.md

# Vérifiez
ls -la projet/

Exercice 2 : Copier et déplacer

# Préparation
mkdir -p exercice/{originaux,copies,archives}
touch exercice/originaux/fichier{1..5}.txt

# 1. Copiez tous les fichiers vers copies/
cp exercice/originaux/*.txt exercice/copies/

# 2. Déplacez fichier1.txt vers archives/
mv exercice/copies/fichier1.txt exercice/archives/

# 3. Renommez fichier2.txt en important.txt
mv exercice/copies/fichier2.txt exercice/copies/important.txt

# Vérifiez
ls -R exercice/

Exercice 3 : Nettoyage

# Préparation
mkdir -p nettoyage
touch nettoyage/fichier{1..10}.txt
touch nettoyage/fichier{1..5}.tmp
touch nettoyage/fichier{1..3}.log

# 1. Supprimez tous les .tmp
rm nettoyage/*.tmp

# 2. Supprimez les .log avec confirmation
rm -i nettoyage/*.log

# 3. Comptez les fichiers restants
ls nettoyage/ | wc -l

Quiz

Q1. Comment créer le dossier a/b/c s'ils n'existent pas ?

Réponse

mkdir -p a/b/c

Q2. Comment copier un dossier avec tout son contenu ?

Réponse

cp -r dossier/ destination/

Q3. Quel wildcard représente "un seul caractère" ?

Réponse

? (point d'interrogation)

Q4. Comment supprimer un dossier non-vide ?

Réponse

rm -r dossier/ ou rm -rf dossier/

🔝 Retour à la table des matières



Points clés à retenir

  • touch crée des fichiers vides, mkdir crée des dossiers
  • mkdir -p crée toute l'arborescence
  • cp copie (-r pour les dossiers)
  • mv déplace ET renomme
  • rm supprime (-r pour les dossiers) - IRRÉVERSIBLE !
  • Wildcards : * (tout), ? (un caractère), [abc] (liste)
  • Toujours vérifier avant de supprimer !

🔝 Retour à la table des matières


← Chapitre précédent | Chapitre suivant : Visualisation et édition →