Nous savons dorénavant ce qu'est le bash, comment trouver de l'aide et comment nous déplacer dans l'arborescence.
C'est donc le moment d'apprendre comment créer des fichiers, des dossiers, les déplacer etc...
Sur votre nouveau cluster préféré de l'IFB :
❌ Là où vous jurez solennellement de ne pas faire d'analyse et de ne pas y stocker de fichiers volumineux
C'est votre “maison”, représentée par ~
(e.g. /shared/home/votre_id
)
- Ce dossier est très limité en stockage (Quota de 5Go)
- Utiliser la commande
cd
(sans argument ou avec ~) pour vous rendre dans ce dossier
✅ Votre dossier projet (e.g /shared/projects/mon_projet)
- C’est LE dossier dans lequel vous avez téléverser vos données
- C’est LE dossier pour lancer vos analyses …
- C'est LE dossier pour suivre vos TP
Créer de nouveaux dossiers¶
Maintenant que nous savons où écrire, nous allons essayer de créer un nouveau dossier.
La commande est simple : mkdir nom_du_dossier
(make directory)
Vérifiez que vous êtes dans votre dossier projet, sous-dossiers cours_commun/TP_linux
# Afficher le chemin absolu où l'on se trouve
pwd
/shared/ifbstor1/projects/2422_ebaii_n1/cours_commun/TP_linux
Créez le dossier chip-seq
# Création du dossier chip-seq
mkdir chip-seq
Vérifiez le contenu de votre dossier pour voir si le nouveau dossier chip-seq est bien apparu.
Tips : Si vous ajoutez l'option -p
à votre commande, les dossiers apparaissent avec un /
à la fin, les rendant plus facilement identifiable !¶
# Contenu du dossier
ls -l
total 2192 -rw-rw----+ 1 pfrancois pfrancois 452 Nov 5 15:02 00_jupyter.ipynb -rw-rw----+ 1 pfrancois pfrancois 366388 Nov 13 15:14 01_bash_et_la_ligne_de_commande.correction.ipynb -rw-rw----+ 1 pfrancois pfrancois 365708 Nov 12 15:36 01_bash_et_la_ligne_de_commande.ipynb -rw-rw----+ 1 pfrancois pfrancois 26567 Nov 12 15:37 02_demander_de_l_aide.correction.ipynb -rw-rw----+ 1 pfrancois pfrancois 8591 Nov 12 15:37 02_demander_de_l_aide.ipynb -rw-rw----+ 1 pfrancois pfrancois 640821 Nov 12 16:01 03_arborescence.correction.ipynb -rw-rw----+ 1 pfrancois pfrancois 634091 Nov 12 16:01 03_arborescence.ipynb -rw-rw----+ 1 pfrancois pfrancois 26232 Nov 13 15:20 04_commandes_de_base.correction.ipynb -rw-rw----+ 1 pfrancois pfrancois 21367 Nov 12 17:12 04_commandes_de_base.ipynb -rw-rw----+ 1 pfrancois pfrancois 94176 Nov 13 21:20 05_manipuler_un_fichier.ipynb -rw-rw----+ 1 pfrancois pfrancois 1427 Nov 13 15:38 05_short.bed -rw-rw----+ 1 pfrancois pfrancois 520 Nov 12 12:22 06_controle_qualite.ipynb -rw-rw----+ 1 pfrancois pfrancois 509 Nov 12 12:22 07_mapping.ipynb drwxrwx---+ 2 pfrancois pfrancois 4096 Nov 13 21:21 chip-seq
S'il est possible de créer un dossier vide, il est possible de le supprimer !
La commande est presque la même : rmdir nom_du_dossier
(remove directory)
Essayons de supprimer le dossier chip-seq
pour créer un nouveau dossier rna-seq
(vous devez obtenir deux lignes de commande)
# Suppression du dossier vide
rmdir chip-seq
# Création du nouveau dossier
mkdir rna-seq
Afin d'organiser votre dossier vous vous déplacez dedans
# Déplacement dans le nouveau dossier créé
cd rna-seq
Vous créez un dossier ref
et un fasta
(en une seule ligne)
# Création de deux dossiers d'un coup
mkdir ref fasta
Vérifiez que les dossiers se sont bien créés
# Liste du contenu
ls -l
total 8 drwxrwx---+ 2 pfrancois pfrancois 4096 Nov 13 21:21 fasta drwxrwx---+ 2 pfrancois pfrancois 4096 Nov 13 21:21 ref
Parfait, maintenant remontons d'un cran dans l'arborescence !
# Déplacement un cran en arrière
cd ..
Sans changer d'emplacement, vous pouvez créer un dossier et l'ensemble de ses sous-dossiers. Pour cela, on utilise l'option -p
et on écrit le chemin que l'on souhaite créer.
Essayons donc de créer le dossier output
et à l'intérieur le sous-dossier bam
, sans utiliser la commande cd
!
# Création d'une succession de dossiers imbriqués
mkdir -p rna-seq/output/bam
Quelle commande utiliser pour vérifier notre arborescence complète ?
# Afficher l'arborescence
tree
. ├── 00_jupyter.ipynb ├── 01_bash_et_la_ligne_de_commande.correction.ipynb ├── 01_bash_et_la_ligne_de_commande.ipynb ├── 02_demander_de_l_aide.correction.ipynb ├── 02_demander_de_l_aide.ipynb ├── 03_arborescence.correction.ipynb ├── 03_arborescence.ipynb ├── 04_commandes_de_base.correction.ipynb ├── 04_commandes_de_base.ipynb ├── 05_manipuler_un_fichier.ipynb ├── 05_short.bed ├── 06_controle_qualite.ipynb ├── 07_mapping.ipynb └── rna-seq ├── fasta ├── output │ └── bam └── ref 5 directories, 13 files
Copier, coller et supprimer des fichiers ou dossiers¶
Copier/coller un fichier¶
cp
est l'équivalent du copier-coller.
Elle prend obligatoirement deux arguments : cp fichier_source destination
La destination peut être le nouveau nom de notre fichier si nous ne souhaitons pas garder son nom d'origine. Cela permet donc de copier-coller-renommer, en une seule ligne de commande !
Avec l'aide de l'option -r
vous pouvez copier un dossier et tout son contenu au lieu d'un simple fichier.
Essayons ! Assurez vous de savoir où vous êtes. Puis copier le fichier /shared/bank/homo_sapiens/hg38/fasta/hg38.fa.fai
dans le sous-dossier ref
.
# Savoir où l'on est
pwd
# Copier le fichier uniquement dans le dossier rna-seq/ref
cp /shared/bank/homo_sapiens/hg38/fasta/hg38.fa.fai rna-seq/ref/
/shared/ifbstor1/projects/2422_ebaii_n1/cours_commun/TP_linux
Affichons un arbre de notre dossier rna-seq pour nous assurer que tout est bon.
# Afficher l'arbre du dossier rna-seq uniquement
tree rna-seq
rna-seq ├── fasta ├── output │ └── bam └── ref └── hg38.fa.fai 4 directories, 1 file
Couper/coller un fichier¶
mv
est l'équivalent de couper/coller mais aussi de renommer.
Cette commande a donc deux usages :
Renommer :
mv fichier_à_renommer nouveau_nom
Couper/coller :
mv fichier_source destination
mv
est une commande puissante, elle peut renommer un dossier sans option, faites donc bien attention.
Testons : il faut que vous déplaciez le fichier hg38.fa.fai
dans le dossier output
.
# Déplacer le fichier
mv rna-seq/ref/hg38.fa.fai rna-seq/output/
Un petit arbre pour vérifier
# Arbre du dossier rna-seq
tree rna-seq
rna-seq ├── fasta ├── output │ ├── bam │ └── hg38.fa.fai └── ref 4 directories, 1 file
Et si depuis le début nous faisions fausse route ? Le dossier rna-seq
devait bien s'appeler chip-seq
! Renommez-le.
# Renommer le dossier rna-seq en chip-seq
mv rna-seq chip-seq
Listons le contenu du dossier où nous sommes pour vérifier que tout est bon.
# Lister le contenu
ls
00_jupyter.ipynb 01_bash_et_la_ligne_de_commande.correction.ipynb 01_bash_et_la_ligne_de_commande.ipynb 02_demander_de_l_aide.correction.ipynb 02_demander_de_l_aide.ipynb 03_arborescence.correction.ipynb 03_arborescence.ipynb 04_commandes_de_base.correction.ipynb 04_commandes_de_base.ipynb 05_manipuler_un_fichier.ipynb 05_short.bed 06_controle_qualite.ipynb 07_mapping.ipynb chip-seq
Supprimer un fichier ou dossier non vide¶
C'est sans nul doute la commande la plus traîte qui a fait pleurer au moins une fois chacun d'entre nous.
rm
permet de supprimer un fichier et accompagnée de son option -r
elle supprimera même un dossier.
Nous avons donc :
rm fichier
pour la suppression d'un fichier
rm -r dossier
pour la suppression (suspens...) d'un dossier !
Elle ne vous demandera pas avant suppression si vous êtes VRAIIIIMENT sûrs de vous. Mieux vaux donc relire deux fois le nom du fichier que l'on est sur le point de supprimer !
Tips : Vous pouvez faire un ls
du fichier que vous souhaitez supprimer afin de vous assurer que c'est le bon. Ensuite vous modifiez simplement le ls
en rm
¶
Maintenant que vous êtes mis en garde, supprimons ce fichier hg38.fa.fai
qui ne nous sert finalement pas...
# Supprimer le fichier
rm chip-seq/output/hg38.fa.fai
Vérifions une dernière fois que tout est bon (avec un arbre par exemple ?)
# Tracer l'arbre du dossier chip-seq
tree chip-seq
chip-seq ├── fasta ├── output │ └── bam └── ref 4 directories, 0 files