J'exécute un script shell qui écrit dans un fichier.
Ce script peut prendre un certain temps et je voudrais surveiller la sortie partielle plutôt que d'attendre la fin du script entier.
Est-il sûr d'ouvrir (double-cliquer) un fichier en cours d'écriture par le script?
Réponses:
La lecture du fichier est sûre, bien que le double-clic que vous avez mentionné ouvrira probablement le fichier dans un éditeur qui vous offrira une option pour apporter des modifications et les enregistrer. Des erreurs de clic se produisent, donc je recommande des commandes qui ne vous permettront même pas de modifier le fichier.
Ce sont des exemples qui fonctionnent dans le terminal; ils ne liront que le fichier:
la source
Tant que vous n'y écrivez pas, ça devrait aller.
Cependant, je recommanderais d'utiliser
dans un autre terminal.
Cette commande "suit" le fichier
log_file
et écrit le contenu nouvellement ajouté dès qu'il est mis à jour par le script.la source
Pas assez de représentants pour ajouter un commentaire à la réponse de Kamil Maciorowski:
Pour certains fichiers, vous souhaiterez
tail -F file
que les éléments suivants se poursuivent pendant une rotation. Regarder syslog par exemple.la source
Dans le cas où le script (ou l'implémentation du framework sous-jacent) ouvre et ferme à plusieurs reprises le descripteur de fichier pendant son travail, il peut rencontrer une erreur de violation de partage dans le mode d'écriture suivant ouvert pour les raisons suivantes:
1) Le script peut demander l'écriture accéder en mode exclusif (à l'exclusion de l'accès en lecture simultanée), donc si votre programme éditeur / visualiseur de fichiers ne lit encore que le fichier, il peut déclencher une erreur dans le script d'écriture.
2) En outre, certains éditeurs / visualiseurs de fichiers verrouillent le fichier pendant toute la durée pendant laquelle ils ont ouvert le fichier.
En conclusion, il existe des problèmes possibles qui dépendent du programme que vous utilisez pour afficher le fichier. Et il y a des problèmes possibles résultant de l'implémentation (ou du cadre sous-jacent) du script qui écrit dans le fichier.
la source
tail -f
ouless +F
est routinière.