GNU/Linux >> Tutoriels Linux >  >> Linux

Pipe doit-il écrire un fichier temporaire?

  1. les canaux ne stockent pas les données sur le disque. /bin/echo truc | grep bar ne crée aucun fichier. essayez strace -f sh -c '/bin/echo foo | grep bar' pour voir tous les appels système effectués par un shell lors de l'exécution d'un pipeline. echo est un shell intégré, j'ai donc suggéré /bin/echo pour que le shell lance un exécutable.

  2. /tmp n'a pas besoin d'être sur disque. Il peut être monté sur tmpfs (c'est-à-dire soutenu par de la mémoire virtuelle). Notez qu'un redémarrage videra /tmp dans ce cas, utilisez donc /var/tmp pour tout ce que vous voulez laisser autour.

Si ce que vous faites consiste à mettre des données dans un fichier, il n'utilise pas de canal. Si le fichier est un fichier fifo, pas un fichier normal, il s'agit simplement d'un rendez-vous nommé et ne contient pas de données. Utilisez ls -l pour le savoir.

Et notez que si vous espérez empêcher les utilisateurs de voir ce qui se passe dans les canaux des processus qu'ils possèdent, vous êtes à peu près SOL, car strace peut inspecter tout ce qu'un processus fait qui interagit avec quoi que ce soit en dehors du processus, à l'exception de la lecture/écriture de la mémoire partagée mmappée. ltrace est encore plus envahissant. Si votre programme s'exécute sur des systèmes où l'utilisateur local est root, vous ne pouvez pas du tout les arrêter. Sous Unix, root peut tout faire et dispose d'outils puissants à cette fin.


Linux
  1. Écrire tout le défilement Tmux dans un fichier ?

  2. Pseudo fichiers pour données temporaires ?

  3. Que fait Exec 3 ?

  4. Python a-t-il un argument argc ?

  5. Comment puis-je faire en sorte que tcpdump écrive dans un fichier et que la sortie standard affiche les données appropriées?

Bash :Écrire dans un fichier

Comment écrire des données dans un fichier sous Linux

Python est-il synchronisé ?

Comment ça marche ? Que fait rm ?

wc -l ne compte PAS le dernier du fichier s'il n'a pas de caractère de fin de ligne

Avoir un fichier nommé ~ (tilde) dans mon répertoire personnel