Petite astuce bash pour supprimer le contenu d'un répertoire :
find $REPERTOIRE -mindepth 1 -delete
-mindepth 1
permet de ne lister que les fichiers (et répertoires) situés au moins au niveau 1 de profondeur. Donc en pratique, tout ce qui se trouve dans le répertoire $REPERTOIRE.
-delete
supprime tous les fichiers (et répertoires) listés.
Note : les fichiers cachés (commençant par un '.') sont également supprimés.
sudo -u www-data stat /mon/repertoire
Il faut au préalable que python et apache soient installés.
Puis il faut se rendre dans le répertoire à partager et taper (avec le terminal) :
# 12345 est le numéro de port sur lequel apache servira la page
python -m SimpleHTTPServer 12345
Puis, d'un autre ordinateur, il suffit de se connecter sur l'URL IP_SRV:12345.
Un moyen de créer des répertoires plus rapidement.
Je veux créer des répertoires ayant un nom basé sur le même modèle. Par exemple REPERTOIRE.ABC.08
.
Pour créer tous les répertoires de 08 à 14, je peux utiliser une boucle for dans laquelle un compteur s'incrémente dans une string, laquelle est passée à mkdir.
Ou alors je peux utiliser une capacité de la commande mkdir :
mkdir REPERTOIRE.ABC.{08..14}
# Ce qui me donne :
ls -a
REPERTOIRE.ABC.08
REPERTOIRE.ABC.09
REPERTOIRE.ABC.10
REPERTOIRE.ABC.11
REPERTOIRE.ABC.12
REPERTOIRE.ABC.13
REPERTOIRE.ABC.14
Je peux utiliser une suite de lettres :
mkdir REPERTOIRE.{a..f}
# Ce qui me donne :
ls -a
REPERTOIRE.a
REPERTOIRE.b
REPERTOIRE.c
REPERTOIRE.d
REPERTOIRE.e
REPERTOIRE.f
Je peux utiliser plusieurs "suites" dans le même motif. Attention toutefois, car toutes les combinaisons seront créees :
mkdir REPERTOIRE.{a..c}_{0..3}
# Ce qui me donne :
ls -a
REPERTOIRE.a_0
REPERTOIRE.a_1
REPERTOIRE.a_2
REPERTOIRE.a_3
REPERTOIRE.b_0
...
REPERTOIRE.c_3
Le bonus de fin : je peux parcourir une suite de nombres avec un pas supérieur à 1 :
# Pour un pas de 2
mkdir REPERTOIRE.{1..7..2}
# Ce qui me donne :
ls -a
REPERTOIRE.1
REPERTOIRE.3
REPERTOIRE.5
REPERTOIRE.7
Edit : si au lieu d'une suite de caractères je veut utiliser une liste de valeurs prédéfinies je peux utiliser la virgule :
mkdir dossier_{toto,1,007,AZ}
# Ce qui me donne
ls -a
dossier_toto
dossier_1
dossier_007
dossier_AZ
Pour une arborescence, j'utilise aussi l'option -p :
mkdir -p parent{1..4}/enfant{bill,bob,ben}
# Ce qui me donne
tree
.
├── parent1
│ ├── enfantben
│ ├── enfantbill
│ └── enfantbob
├── parent2
│ ├── enfantben
│ ├── enfantbill
│ └── enfantbob
├── parent3
│ ├── enfantben
│ ├── enfantbill
│ └── enfantbob
└── parent4
├── enfantben
├── enfantbill
└── enfantbob
Différentes façon de comparer le contenu de deux répertoires.