Environnement Unix
View the Project on GitHub DU-Bii/module-1-Environnement-Unix
Il est de plus en plus facile d’obtenir de plus en plus de données. Il est important d’être conscient des capacités de stockage de sa machine d’une part, et du fait qu’un trop grand nombre de fichiers sur une machine peut engendrer un crash pur et simple du système.
df
),du
),find
),gzip
),tar
).La commande df
permet de connaître les quantités d’espace occupé et disponible
pour tous les disques du système.
Question: Quelle est la quantité d’espace disque disponible sur votre machine ?
Solution
La commande à utiliser est
df -h
, l’option-h
signifiant “human readable”. Autrement dit, cette option donne le résultat en M, G, T et non en B (défaut).
Comme vu précédemment, la commande pour connaître la taille des fichiers présents
dans un dossier est ls -lh
.
Question: Rendez-vous dans le dossier ~/dubii/study-cases/Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016
.
Quelle est la quantité d’espace disque occupée par chacun des fichiers présents
dans ce répertoire ? Trier les fichiers du plus volumineux au moins volumineux.
Solution:
$ cd study-cases/Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016 $ # Afficher la taille des fichiers $ ls -lh total 24M -rw-rw-r-- 1 laurent laurent 1.6M Feb 1 10:44 12870_2016_726_MOESM10_ESM.tsv -rw-rw-r-- 1 laurent laurent 1.4M Feb 1 10:44 12870_2016_726_MOESM10_ESM.xlsx -rw-rw-r-- 1 laurent laurent 37K Feb 1 10:44 12870_2016_726_MOESM12_ESM.xlsx -rw-rw-r-- 1 laurent laurent 18K Feb 1 10:44 12870_2016_726_MOESM13_ESM.xlsx -rw-rw-r-- 1 laurent laurent 20K Feb 1 10:44 12870_2016_726_MOESM14_ESM.xlsx -rw-rw-r-- 1 laurent laurent 17K Feb 1 10:44 12870_2016_726_MOESM15_ESM.xlsx -rw-rw-r-- 1 laurent laurent 16K Feb 1 10:44 12870_2016_726_MOESM16_ESM.xlsx -rw-rw-r-- 1 laurent laurent 17K Feb 1 10:44 12870_2016_726_MOESM17_ESM.xlsx -rw-rw-r-- 1 laurent laurent 30K Feb 1 10:44 12870_2016_726_MOESM18_ESM.xlsx -rw-rw-r-- 1 laurent laurent 15K Feb 1 10:44 12870_2016_726_MOESM19_ESM.tsv -rw-rw-r-- 1 laurent laurent 25K Feb 1 10:44 12870_2016_726_MOESM19_ESM.xlsx -rw-rw-r-- 1 laurent laurent 13M Feb 1 10:44 12870_2016_726_MOESM1_ESM.tsv -rw-rw-r-- 1 laurent laurent 4.6M Feb 1 10:44 12870_2016_726_MOESM1_ESM.xlsx -rw-rw-r-- 1 laurent laurent 18K Feb 1 10:44 12870_2016_726_MOESM2_ESM.tsv -rw-rw-r-- 1 laurent laurent 34K Feb 1 10:44 12870_2016_726_MOESM2_ESM.xlsx -rw-rw-r-- 1 laurent laurent 15K Feb 1 10:44 12870_2016_726_MOESM3_ESM.tsv -rw-rw-r-- 1 laurent laurent 34K Feb 1 10:44 12870_2016_726_MOESM3_ESM.xlsx -rw-rw-r-- 1 laurent laurent 1.9M Feb 1 10:44 12870_2016_726_MOESM4_ESM.xlsx -rw-rw-r-- 1 laurent laurent 386K Feb 1 10:44 GSM1388555_WT_0.Gene.rpkm.txt.gz -rw-rw-r-- 1 laurent laurent 385K Feb 1 10:44 GSM1388556_WT_1.Gene.rpkm.txt.gz -rw-rw-r-- 1 laurent laurent 385K Feb 1 10:44 GSM1388557_WT_8.Gene.rpkm.txt.gz -rw-rw-r-- 1 laurent laurent 729 Feb 1 10:44 README.md
Pour connaître la quantité d’espace disque occupée par un dossier, utiliser
la commande du
, encore une fois avec l’option -h
.
Question: Afficher la taille des sous-dossiers du dossier ~/dubii/study-cases
.
Comment faire pour ne pas tenir compte du dossier .git
?
Solution:
# Taille des sous-dossiers du dossier study-cases $ du -h ~/dubii/study-cases 8.0K ./img 756K ./Homo_sapiens/TCGA_study-case 760K ./Homo_sapiens 236K ./Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq 144K ./Escherichia_coli/bacterial-regulons_myers_2013/data/RNA-seq 384K ./Escherichia_coli/bacterial-regulons_myers_2013/data 1.1M ./Escherichia_coli/bacterial-regulons_myers_2013 8.0K ./Escherichia_coli/genome-sequence_allue-guardia_2019 736K ./Escherichia_coli/genome-metabolome_fuhrer_2017 1.9M ./Escherichia_coli 4.0K ./.git/branches 8.0K ./.git/logs/refs/remotes/origin 12 ./.git/logs/refs/remotes 8.0K ./.git/logs/refs/heads 24K ./.git/logs/refs 32K ./.git/logs 8.0K ./.git/info 8.0K ./.git/refs/remotes/origin 12K ./.git/refs/remotes 8.0K ./.git/refs/heads 4.0K ./.git/refs/tags 28K ./.git/refs 44K ./.git/hooks 4.0K ./.git/objects/info 19M ./.git/objects/pack 19M ./.git/objects 20M ./.git 580K ./Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables 2.5M ./Arabidopsis_thaliana/metabo_proteo_Strehmel_2017 24M ./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016 27M ./Arabidopsis_thaliana 49M # Ne pas tenir compte du dossier .git $ du -h --exclude .git ~/dubii/study-cases 8.0K ./img 756K ./Homo_sapiens/TCGA_study-case 760K ./Homo_sapiens 236K ./Escherichia_coli/bacterial-regulons_myers_2013/data/ChIP-seq 144K ./Escherichia_coli/bacterial-regulons_myers_2013/data/RNA-seq 384K ./Escherichia_coli/bacterial-regulons_myers_2013/data 1.1M ./Escherichia_coli/bacterial-regulons_myers_2013 8.0K ./Escherichia_coli/genome-sequence_allue-guardia_2019 736K ./Escherichia_coli/genome-metabolome_fuhrer_2017 1.9M ./Escherichia_coli 580K ./Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables 2.5M ./Arabidopsis_thaliana/metabo_proteo_Strehmel_2017 24M ./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016 27M ./Arabidopsis_thaliana 30M .
Noter que find -size
permet de trouver les fichiers en fonction de
leur taille :
# Trouver les fichiers de plus de 1M
$ find . -size +1M
./.git/objects/pack/pack-ebb930741581bed736361ee821e968dc10c0abef.pack
./Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/data sheet 1.pdf
./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.tsv
./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.xlsx
./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.xlsx
./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.tsv
./Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM4_ESM.xlsx
Il s’agit de compresser un fichier.
Plusieurs outils de compression existent, le plus courant sous unix étant gzip
et l’outil de décompression associé gunzip
.
Question: Quelle est la taille du fichier ~/dubii/study-cases/Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.tsv
?
Le compresser avec gzip
. Quelle est la taille du fichier compressé ?
Solution :
$ cd ~/dubii/study-cases/Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/ $ # Taille du fichier 12870_2016_726_MOESM1_ESM.tsv $ ls -lh 12870_2016_726_MOESM1_ESM.tsv -rw-rw-r-- 1 laurent laurent 13M Feb 1 10:44 12870_2016_726_MOESM1_ESM.tsv $ # Le fichier fait 13M. $ # Compression du fichier. $ # Attention : par défaut, gzip compresse directement le fichier sans créer de copie $ # On utilise l'option -c pour écrire la sortie sur la sortie standard et > pour rédiriger la sortie standard dans un fichier. $ gzip -c 12870_2016_726_MOESM1_ESM.tsv > 12870_2016_726_MOESM1_ESM.tsv.gz $ # Taille du fichier compressé $ ls -lh 12870_2016_726_MOESM1_ESM.tsv.gz -rw-rw-r-- 1 laurent laurent 2.5M Feb 1 15:44 12870_2016_726_MOESM1_ESM.tsv.gz $ # Le fichier fait 2.5M, soit un taux de compression de 80%.
Réduire le nombre de fichiers présents sur un disque consiste à créer une archive d’un dossier. Cette archive va contenir, en un seul fichier, tous les fichiers présents initialement dans le dossier.
La commande pour créer une archive est tar
.
Syntaxe: tar cvf <TARNAME> <SOURCE>
.
tar
est une commande un peu spéciale puisque certaines options sont accessibles
sans utiliser le caractère -
.
Voici la signification des options utilisées :
c
mode création d’archivef <OUTPUT>
nom du fichier de sortieIl est également possible d’utiliser l’option -z
(tar czf
) pour compresser
l’archive à la volée.
Exemple:
$ # Création d'une archive pour le dossier Arabidopsis_thaliana
$ tar cf Arabidopsis_thaliana.tar Arabidopsis_thaliana
$ # Idem mais en compressant l'archive à la volée.
$ tar czf Arabidopsis_thaliana.tar.gz Arabidopsis_thaliana
On peut également utiliser l’option (-v, --verbose
) pour afficher le nom des
fichiers au fur et à mesure qu’ils sont ajoutés à l’archive) :
$ # Idem mais en compressant l'archive à la volée.
$ tar cvzf Arabidopsis_thaliana.tar.gz Arabidopsis_thaliana
Arabidopsis_thaliana/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S4 Root exudate proteome.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S4_Root_exudate_proteome.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S2 Root Exudates JL140617.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S3 Analytical Characterization.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S1_Roots.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S3_Analytical_Characterization.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S1 Roots.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S2_Root_Exudates_JL140617.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/README.md
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/data sheet 1.pdf
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM2_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM19_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM14_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/README.md
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM16_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM15_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM17_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM3_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388555_WT_0.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM12_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM13_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM18_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388557_WT_8.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM2_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388556_WT_1.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM4_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM19_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM3_ESM.xlsx
Par ailleurs, l’option --exclude <PATTERN>
permet d’exclude certains fichiers de l’archive.
Exemple:
$ # Création d'une archive du répertoire study-cases en ne tenant pas compte du dossier .git
$ tar cvzf ~/study-cases.tar.gz --exclude ".git" ~/study-cases
On utilise également l’outil tar
pour extraire le contenu d’une archive.
Syntaxe: tar xvf <TARNAME> <SOURCE>
.
Ici, on utilise l’option -x
(extract) à la place de l’option -c
(create).
Si l’archive est compressée, on utilise l’option -z
pour indique au programme
qu’il faudra décompresser l’archive.
Exemple:
# Extraction d'une archive compressée en mode verbeux (verbose)
$ tar xvzf Arabidopsis_thaliana.tar.gz
Arabidopsis_thaliana/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S4 Root exudate proteome.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S4_Root_exudate_proteome.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S2 Root Exudates JL140617.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S3 Analytical Characterization.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S1_Roots.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S3_Analytical_Characterization.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised Suppl Table S1 Roots.xlsx
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/Strehmel revised suppl tables/Revised_Suppl_Table_S2_Root_Exudates_JL140617.tsv
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/README.md
Arabidopsis_thaliana/metabo_proteo_Strehmel_2017/data sheet 1.pdf
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM2_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM19_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM14_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/README.md
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM16_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM15_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM17_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM3_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388555_WT_0.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM12_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM13_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM18_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388557_WT_8.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM10_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM2_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM1_ESM.tsv
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/GSM1388556_WT_1.Gene.rpkm.txt.gz
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM4_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM19_ESM.xlsx
Arabidopsis_thaliana/transcripto_proteo_metabo_Liang_2016/12870_2016_726_MOESM3_ESM.xlsx