Outils pour utilisateurs

Outils du site


bash_cheat_sheet

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
bash_cheat_sheet [2025/06/03 06:11] – créée pillowbash_cheat_sheet [2025/06/03 08:12] (Version actuelle) – [Effacer fichiers selon conditions (find)] pillow
Ligne 2: Ligne 2:
  
 ---- ----
 +
 +===== Opérateurs =====
 +
 +----
 +==== String ====
 +
 +  * Identiques : [ "str1" = "str2" ]
 +  * Différente : [ "str1 != "str2"]
 +  * Non vide : [ -n "str1" ]
 +  * Vide : [ -z "str1" ]
 +
 +==== Numbers ====
 +  * Egaux : [ nb1 -eq nb2 ]
 +  * Différents : [ nb1 -ne nb2 ]
 +  * Sup à > : [ nb1 -gt nb2 ]
 +  * Sup ou égal >= : [ nb1 -ge nb2 ]
 +  * Inf à < : [ nb1 -lt nb2 ]
 +  * Inf ou égal <= : [nb1 -le nb2 ]
 +
 +==== Fichiers et répertoires ====
 +  * Exécutable (par le user courant) : [ -x filename ]  #Uniquement fichiers
 +  * Writable (user courant) : [ -w filename ]
 +  * Readable (user courant) : [ -r filename ]
 +  * Est un fichier : -f
 +  * Est un répertoire : -d
 +  * Existe : -e
 +  * Taille > 0 : -s
 +
 +
 ===== Gestion des options ===== ===== Gestion des options =====
 Les options doivent être avant les paramètres 'classique' Les options doivent être avant les paramètres 'classique'
Ligne 7: Ligne 36:
  #!/bin/bash  #!/bin/bash
          
- #Gestion des options+ #On met les options à false
  optA=false;  optA=false;
  optB=false;  optB=false;
 +        
 +        #Définion de la commande
  cmd="ls";  cmd="ls";
-    +         
 +        #Check des options
  while true  while true
  do  do
Ligne 18: Ligne 50:
  echo "option a"  echo "option a"
  opta=true  opta=true
- cmd+=" -a"+ cmd+=" -a" #bien penser à l'espace
  shift  shift
  ;;  ;;
Ligne 31: Ligne 63:
  done  done
          
- if [[ $opta ]]+ echo "$cmd" #affiche ls -a -b si les deux options sont présentes 
 +     
 + if [[ ! -z "$1" ]]
  then  then
- echo "gagné A";+ echo "$1"; 
 + else 
 + echo "pas de paramètre"
  fi  fi
- if [[ optb ]] + 
- then + 
- echo "gagné B+===== Fichiers ou répertoires dans un tableau ===== 
- fi; + 
-    + #!/bin/bash 
- echo "$cmd+  
-     + repertoire="/home/pillow/" 
- echo "$1";+  
 + cmd="ls $repertoire" 
 +  
 + files_folders=$($cmd) 
 + folders=() #déclaration tableau vide 
 +  
 + echo $files_folders #sortie de ls 
 +  
 + for file in $files_folders 
 + do 
 + if [[ -d $repertoire$file ]] && [[ -e $repertoire$file ]] && [[ "$file" != "." ]] && [[ "$file" != ".." ]] 
 + then 
 + folders+=("$repertoire$file") #ajout à la fin du tableau 
 + fi 
 + done 
 + echo "Nombre de répertoires : ${#folders[@]}
 + files_array=(${files_folders// /}) # transforme la string en tableu avec ' ' comme séparateur 
 + echo $files_array 
 + echo "Nombre de fichiers et répertoires : ${#files_array[@]}" 
 + echo $repertoire${files_array[0]} 
 + 
 +===== Effacer fichiers selon conditions (find) ===== 
 + 
 +Motif de base :  
 + 
 +''find /repertoire -type f -name "*.log" -exec rm {} \;'' 
 + 
 +Conditions possibles :  
 +== -type == 
 +  *   * f : fichier 
 +  *   * d : repertoire 
 +  *   * l : lien symbolique 
 +  *   * c : périphérique caractère 
 +  *   * s : socket 
 +  *   * b : périphérique bloc 
 +  *   * p : tube nommé (FIFO) 
 + 
 +== -name "regexp" == 
 +  *   * peut être combiné avec \( -name "*.log" -o -name "*.py"\) 
 +  *   * exlcusion : ! -name "*.bak" 
 + 
 +== -size [valeur] == 
 +(c => octets, k => ko, M => Mo, G => Go) 
 +  *   * exactement : -size 1M 
 +  *   * plus de : -size +10M 
 +  *   * moins de : -size - 10k 
 +  *   * plage : -size 1M -a -size -10M 
 + 
 +== Dates [valeur en jours] == 
 +  *   * -mtime : modification 
 +  *   * -atime accès 
 +  *   * -ctime changement méta donénes (chmod par exemple) 
 +  *   * exactement : -date 7 
 +  *   * plus de : -date +30 
 +  *   * moins de : -date -1 
 + 
 +== -perm [mode] (permissions) == 
 +  *   * Octale : -perm 644 
 +  *   * Symbolique -perm /u+s ou /g=w 
 +  *   * Au moins : -644 
 +  *   * Exactement : 644 
 + 
 +== -user nomuser == 
 +  * ! -user nomuser 
 +  * -group nomgroup 
 +  * ! - group nomgroup 
 +  * -user nomuser -group nomgroup 
 + 
 +== Exécution == 
 +  * -exec [command] {} \; <- Sans demander de confirmation 
 +  * -ok [command] {} \; <- avec confirmation 
 + 
  
  
bash_cheat_sheet.1748931087.txt.gz · Dernière modification : de pillow