Organisez vos fichiers et répertoires avec mkdir, cp, mv et rm
Dans cette étape, vous apprendrez à organiser efficacement vos fichiers et répertoires à l'aide des commandes mkdir (make directory - créer un répertoire), cp (copy - copier), mv (move/rename - déplacer/renommer) et rm (remove - supprimer). Ces commandes sont cruciales pour maintenir un système de fichiers propre et structuré.
Tout d'abord, assurez-vous d'être dans votre répertoire ~/project.
cd ~/project
Vérifiez votre emplacement actuel :
pwd
La sortie devrait être /home/labex/project.
mkdir : Créer des répertoires
Vous avez déjà utilisé mkdir pour créer un seul répertoire. Explorons maintenant des options mkdir plus avancées.
Vous pouvez créer plusieurs répertoires à la fois en les listant comme arguments :
mkdir reports presentations
Vérifiez leur création :
ls
Vous devriez voir documents, presentations et reports listés.
L'option -p (parents) de la commande mkdir est très utile pour créer tous les répertoires parents manquants pour la destination demandée. Cela évite les erreurs si vous essayez de créer un sous-répertoire dans un répertoire parent inexistant.
Créons une structure de répertoires imbriqués : projects/alpha/docs.
mkdir -p projects/alpha/docs
Maintenant, utilisez ls -R pour voir la structure imbriquée nouvellement créée :
ls -R projects
Vous devriez voir :
projects:
alpha
projects/alpha:
docs
projects/alpha/docs:
cp : Copier des fichiers et des répertoires
La commande cp copie des fichiers et des répertoires. Lors de la copie d'un fichier, elle crée un duplicata soit dans le répertoire actuel, soit dans un autre répertoire spécifié.
Copions report.txt du répertoire documents vers le répertoire reports.
cp documents/report.txt reports/
Vérifiez la copie en listant le contenu du répertoire reports :
ls reports
Vous devriez voir report.txt dans le répertoire reports.
Si un fichier portant le même nom existe dans le répertoire cible, cp l'écrasera par défaut.
Pour copier un répertoire et son contenu, vous devez utiliser l'option -r (récursif). Par défaut, cp ignore les répertoires si -r n'est pas spécifié.
Copions l'intégralité du répertoire documents dans projects/alpha/.
cp -r documents projects/alpha/
Vérifiez la copie récursive :
ls -R projects/alpha/documents
Vous devriez voir le contenu du répertoire documents (y compris notes.txt, drafts, et drafts/draft_v1.txt) dupliqué à l'intérieur de projects/alpha/documents.
projects/alpha/documents:
drafts notes.txt report.txt
projects/alpha/documents/drafts:
draft_v1.txt
mv : Déplacer et renommer des fichiers et des répertoires
La commande mv déplace des fichiers d'un emplacement à un autre. Elle peut également être utilisée pour renommer des fichiers ou des répertoires. Si vous considérez le chemin absolu d'un fichier comme son nom complet, alors déplacer un fichier revient effectivement à renommer un fichier. Le contenu des fichiers déplacés reste inchangé.
Renommons notes.txt dans le répertoire documents en meeting_notes.txt.
mv documents/notes.txt documents/meeting_notes.txt
Vérifiez le renommage :
ls documents
Vous devriez maintenant voir meeting_notes.txt à la place de notes.txt.
Déplaçons maintenant report.txt du répertoire reports vers documents/drafts.
mv reports/report.txt documents/drafts/
Vérifiez le déplacement :
ls reports
Le répertoire reports devrait maintenant être vide.
ls documents/drafts
Vous devriez voir draft_v1.txt et report.txt dans le répertoire documents/drafts.
L'option -v pour mv affiche une sortie détaillée des opérations de la commande, ce qui peut être utile pour confirmation.
mv -v documents/meeting_notes.txt documents/final_notes.txt
Vous verrez une sortie comme :
renamed 'documents/meeting_notes.txt' -> 'documents/final_notes.txt'
rm : Supprimer des fichiers et des répertoires
La commande rm supprime des fichiers. Soyez prudent avec rm, car les fichiers supprimés ne sont généralement pas récupérables depuis la ligne de commande.
Créons un fichier temporaire pour pratiquer rm.
touch temp_file.txt
Maintenant, supprimons temp_file.txt :
rm temp_file.txt
Vérifiez sa suppression :
ls
temp_file.txt ne devrait plus être listé.
Par défaut, rm ne supprime pas les répertoires. Si vous essayez de supprimer un répertoire non vide sans l'option appropriée, vous obtiendrez une erreur.
rm presentations
Vous verrez une erreur :
rm: cannot remove 'presentations': Is a directory
Pour supprimer des répertoires et leur contenu, vous devez utiliser l'option -r (récursif). La commande rm -r parcourt d'abord chaque sous-répertoire et supprime individuellement leurs fichiers avant de supprimer chaque répertoire.
Supprimons le répertoire presentations et son contenu (qui est actuellement vide, mais -r est toujours requis pour les répertoires).
rm -r presentations
Vérifiez sa suppression :
ls
presentations ne devrait plus être listé.
L'option -i pour rm demande interactivement confirmation avant de supprimer chaque fichier. C'est une bonne mesure de sécurité.
Créons quelques fichiers temporaires supplémentaires, puis supprimons-les interactivement.
touch file1.txt file2.txt
rm -i file1.txt file2.txt
Vous serez invité pour chaque fichier :
rm: remove regular empty file 'file1.txt'? y
rm: remove regular empty file 'file2.txt'? y
Tapez y et appuyez sur Entrée pour chaque invite afin de confirmer la suppression.
L'option -f (force) force la suppression sans demander confirmation à l'utilisateur. Si vous spécifiez à la fois -i et -f, -f a la priorité. Utilisez -f avec une extrême prudence.
Enfin, nettoyons le répertoire projects.
rm -r projects
Vérifiez que projects a disparu :
ls
rmdir : Supprimer les répertoires vides
Vous pouvez également utiliser la commande rmdir pour supprimer les répertoires vides. Elle échouera si le répertoire n'est pas vide.
Créons un répertoire vide et supprimons-le avec rmdir.
mkdir empty_dir
rmdir empty_dir
Vérifiez sa suppression :
ls
empty_dir ne devrait plus être listé.
Si vous essayez de supprimer un répertoire non vide avec rmdir, cela échouera :
mkdir test_dir
touch test_dir/test_file.txt
rmdir test_dir
Vous verrez une erreur :
rmdir: failed to remove 'test_dir': Directory not empty
N'oubliez pas d'utiliser rm -r pour les répertoires non vides.
rm -r test_dir