« Catégorie:Trucs Shell » : différence entre les versions
m (Trucs: Tester une réponse sans se soucier si la réponse est vide) |
m (Supprimer avec rm avec un filtre par utilisateur) |
||
Ligne 20 : | Ligne 20 : | ||
if test "" = "o" | if test "" = "o" | ||
Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre. | Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre. | ||
== Supprimer avec rm avec un filtre par utilisateur == | |||
Supprimer avec rm avec un filtre par utilisateur | |||
il y a 2 méthode , la première étant la moins propre. Mai plus rapide. | |||
#!/bin/sh | |||
# la première | |||
#find "$p" -user "tnt" -print0 | xargs -0 /bin/rm -f 2>/dev/null && find "$p" -user "tnt" -print0 | xargs -0 /bin/rmdir -p 2>/dev/null | |||
# la deuxième | |||
#find "$1" -user "$2" -exec /bin/rm -vf '{}' \; 2>/dev/null && find "$1" -user "$2" -exec /bin/rmdir -p '{}' \; 2>/dev/null | |||
Ceci évite de supprimer des fichier qui appartiennes a un autres utilisateur par exemple root, ou un fichier qui aurai les droits 0777 d'un autres utilisateur. | |||
Simple et plus sure que de faire un rm -r ./* |
Version du 18 mars 2007 à 21:33
Les commandes du shell, leurs paramètres, les scripts...
Trucs: Tester une réponse sans se soucier si la réponse est vide
Il arrive parfois qu'on fasse saisir une réponse read rep
Puis, on veut tester si la réponse est "o" if test $rep = o
Le pb, c'est que si l'utilisateur tape "return" sans saisir de réponse, la variable "rep" est vide... et le test devient bancal car il lit if test = o Erreur de syntaxe, l'option "=" veut absolument 2 opérandes
La solution: Encadrer la variable et la valeur par des guillemets if test "$rep" = "o"
Même si "rep" est vide, le shell verra if test "" = "o" Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre.
Supprimer avec rm avec un filtre par utilisateur
Supprimer avec rm avec un filtre par utilisateur
il y a 2 méthode , la première étant la moins propre. Mai plus rapide.
- !/bin/sh
- la première
- find "$p" -user "tnt" -print0 | xargs -0 /bin/rm -f 2>/dev/null && find "$p" -user "tnt" -print0 | xargs -0 /bin/rmdir -p 2>/dev/null
- la deuxième
- find "$1" -user "$2" -exec /bin/rm -vf '{}' \; 2>/dev/null && find "$1" -user "$2" -exec /bin/rmdir -p '{}' \; 2>/dev/null
Ceci évite de supprimer des fichier qui appartiennes a un autres utilisateur par exemple root, ou un fichier qui aurai les droits 0777 d'un autres utilisateur.
Simple et plus sure que de faire un rm -r ./*
Pages dans la catégorie « Trucs Shell »
Cette catégorie comprend 39 pages, dont les 39 ci-dessous.
E
L
R
- Trucs:Re-initialiser un terminal
- Trucs:Rechercher/Remplacer dans un fichier
- Trucs:Recuperer le repertoire courant sans le chemin complet en Bash
- Trucs:Remplacer les par des espaces
- Trucs:Retour de script par mail
- Trucs:Retrouver efficacement une ancienne commande
- Trucs:Récupérer la sortie standard redirigée vers un fichier
- Trucs:Récupérer sa console apres le lancement d'une appli X