GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible de savoir quel programme ou script a créé un fichier donné ?

Trois fichiers sont soudainement apparus dans mon répertoire personnel, appelés "client_state.xml", "lockfile" et "time_stats_log". Les deux derniers sont vides. Je me demande comment ils sont arrivés là. Ce n'est pas la première fois que cela se produit, mais la dernière fois, c'était il y a des semaines; J'ai supprimé les fichiers et rien ne s'est cassé ou ne s'est plaint. Je n'ai pas pu penser à ce que je faisais à l'époque signalée par stat $filename . Existe-t-il un moyen de savoir d'où ils viennent ?

Sinon, existe-t-il un moyen de surveiller le répertoire personnel (mais pas les sous-répertoires) pour la création de fichiers ?

Réponse acceptée :

Je ne crois pas qu'il existe un moyen de déterminer quel programme a créé un fichier.

Pour votre question alternative :
Vous pouvez surveillez le fichier à recréer, cependant, en utilisant inotify . inotifywait est une interface de ligne de commande pour inotify sous-système ; vous pouvez lui dire de rechercher create événements dans votre répertoire personnel :

$ (sleep 5; touch ~/making-a-test-file) &
[1] 22526

$ inotifywait -e create ~/
Setting up watches.
Watches established.
/home/mmrozek/ CREATE making-a-test-file

Vous voulez probablement l'exécuter avec -m (moniteur), qui lui dit de ne pas quitter après avoir vu le premier événement


Linux
  1. Quel processus a créé cette fenêtre X11 ?

  2. Qu'est-ce qui fait que les fichiers perdent les autorisations ?

  3. Que sont les fichiers fragmentés sous Linux

  4. Comment puis-je savoir quel processus a un verrou sur un fichier sous Linux ?

  5. Existe-t-il un système de fichiers de type git ?

Rechercher et supprimer le fichier le plus ancien s'il y a plus de X fichiers dans un répertoire sous Linux

Retrouver les fichiers perdus avec Scalpel

Comment trouver des fichiers basés sur l'horodatage sous Linux

Existe-t-il un programme/script pour modifier les fichiers .conf ?

Quelle est la commande unix pour savoir à quel fichier exécutable correspond une commande donnée ?

Comment savoir s'il y a des fichiers dans un dossier et quitter en conséquence (en KSH)