Script Shell condition répertoire vide

Script Shell condition répertoire vide - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 05-12-2007 à 10:51:44    

Bonjour à tous,
 
Y a t'il quelqu'un pour m'interpréter cette condition ?
 
if ! ls /home/commun = /dev/null  Si le répertoire commun n'est pas vide
then rm -r /home/commun           Alors efface le contenu du répertoire commun  
fi                                            Fin
 
Amicalement,
Elminio

Reply

Marsh Posté le 05-12-2007 à 10:51:44   

Reply

Marsh Posté le 05-12-2007 à 11:05:45    

Bonjour.
Je comprends mal ta question.
Tu souhaites effacer des répertoires vides ou pleins ?
 
Si tu veux effacer des répertoires vides : man rmdir


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 05-12-2007 à 11:11:52    

En fait je veux simplement effacer le contenu d'un répertoire quand il est plein et seulement si il est plein.

Reply

Marsh Posté le 05-12-2007 à 11:15:22    

Citation :

ls /home/commun = /dev/null


[:pingouino dei]
heu... /dev/null est un fichier. Ton truc ne veut rien dire.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 05-12-2007 à 11:18:14    

Comment interpréter ceci :
Si le répertoire commun n'est pas vide alors efface son contenu.


Message édité par elminio le 05-12-2007 à 11:18:40
Reply

Marsh Posté le 05-12-2007 à 11:28:05    


find <le_chemin_de_ton_rep> -type d -empty


Te renvoie le nom de ton repertoire si il est vide....

Reply

Marsh Posté le 05-12-2007 à 12:00:43    

Reply

Marsh Posté le 05-12-2007 à 12:08:17    


Elle est pas claire sa commande ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 05-12-2007 à 12:11:58    

??
Un minimun d'effort est nécessaire, on est pas une hotline qui va te donner la réponse à tous tes problèmes.

 

find est une commande, pour savoir ce qu'elle fait tu tapes

man find

 

Il n'y a pas de méthode "simple" pour déterminer si un dossier est vide.

  • soit tu prends la commande de boobaka et tu vérifie que ce qu'elle retourne est égal au nom de ton répertoire et ca sera bon
  • sinon tu compares le résultat d'un ls au résultat d'un ls d'un répertoire vide
  • sinon tu comptes le nombre de ficher dans le répertoire (ls | wc -l) et tu compares ce résultats à 0.
 

Si tu ne connais rien au script sous linux, un petit google "notion fondamentale shell unix" est nécessaire[:spamafote]
Il n'y a pas de secret, tu ne peux pas inventer des commandes dont tu ignores l'existence. Il existe des tutoriaux et des doc très bien faite pour l'introduction au script shell.

 

La tu mélanges tout, résultat de commande, fichier...


Message édité par o'gure le 05-12-2007 à 12:13:54

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 05-12-2007 à 12:24:45    

Citation :

heu... /dev/null est un fichier. Ton truc ne veut rien dire.


 
A je préfére cette réponse, elle quand même plus explicite ...
merci.


Message édité par elminio le 05-12-2007 à 16:15:23
Reply

Marsh Posté le 05-12-2007 à 12:24:45   

Reply

Marsh Posté le 05-12-2007 à 12:28:45    

[:mlc]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 05-12-2007 à 16:38:32    

Tu veux effacer un repertoire et son contenu, mais seulement s'il n'est pas vide, c'est ça ?

[ -n "`ls -A dir`" ] && rm -rf dir

Reply

Marsh Posté le 07-12-2007 à 15:44:04    

le contenu du repertoire, seulement s'il n'est pas vide ...

Reply

Marsh Posté le 07-12-2007 à 18:23:15    

Et le test te sert à quoi alors ? S'il est vide tu peux aussi effacer son contenu, c'est pas un problème :heink:

Reply

Marsh Posté le 07-12-2007 à 19:10:27    

[:rofl]

Reply

Marsh Posté le 10-12-2007 à 14:18:46    

tout a fait ... mais je veux qu'il s'execute seulement quand il y a un contenu.

Reply

Marsh Posté le 10-12-2007 à 15:38:15    

Et bien tu prends ma commande plus haut et tu remplaces "rm -rf dir" par "rm -rf dir/*" ...

Reply

Marsh Posté le 10-12-2007 à 15:50:45    

ok merci ...

Reply

Marsh Posté le 10-12-2007 à 16:43:16    

find . -exec rm {} \;
 
Ca efface les fichiers présent ds le repertoire (si il y en a)

Reply

Marsh Posté le 12-04-2011 à 13:23:51    

Code :
  1. find . -type d -empty | xargs rm -rf

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed