Je suis presque nouveau sur un script shell mais je ne connais pas certaines commandes. J'essaie d'écrire ci-dessous script shell, s'il vous plaît donner une direction. 1. Lisez les fichiers * .gz du répertoire spécifique 2. Extrayez-le dans un autre dossier 3. Déplacez un fichier original dans un autre dossier. Je peux le faire trois scripts shell séparés mais je le veux inclure un script shell. Ensuite, ce script sera cronjob et fonctionnera toutes les 5 minutes. J'essayais de commencer comme ci-dessous mais de toute façon je suis un peu confus comment obtenir la liste des fichiers. Je peux le faire ici un autre script mais que vous voulez inclure dans un script «A propos de: extraire les fichiers * .gz et déplacer un fichier original vers un autre dossier
#!/bin/bash
while IFS= read file; do
gzip -c "$file" > "zipdir/$(basename "$file").gz"
done < filelist
-----------------------------------------
PS:. Les fichiers sont créés dans toutes les 5 minutes
Merci beaucoup, est est pas gzip, il devrait être gunzip juste pour l'extrait? et ne comprennent tout simplement pas shopt -s nullglob et shopt -u nullglob. (évitez de quitter les chemins non expansés) – user347918
supposons que votre répertoire "source" (celui contenant les fichiers .gz d'origine est vide). Dans ce cas, la boucle for retournera la source $/g. Non gerée (avec l'astérisque) et - bien sûr - gzip et mv s'en plaindront. En définissant le drapeau "nullglob" via 'shoot -s nullglob', nous empêchons le retour d'un chemin non-existant (inexistant). L'autre commande à la fin 'shoot -u null glob' réinitialise ce drapeau à sa valeur par défaut. – mauro
re-gunzip: ma commande est correcte car j'ai utilisé l'option '-d' (decompress) (" gunzip "=" gzip -d "). – mauro