GNU/Linux >> Znalost Linux >  >> Linux

Seznam souborů, ke kterým program přistupuje?

time je skvělý příkaz, pokud chcete zjistit, kolik času procesoru daný příkaz zabere.

Hledám něco podobného, ​​co umí vypsat soubory, ke kterým přistupuje program a jeho děti. Buď v reálném čase, nebo následně jako zpráva.

V současné době používám:

#!/bin/bash

strace -ff -e trace=file "[email protected]" 2>&1 | perl -ne 's/^[^"]+"(([^\"]|\[\"nt])*)".*/$1/ && print'

ale selže, pokud příkaz ke spuštění zahrnuje sudo . Není příliš inteligentní (bylo by hezké, kdyby uměl pouze vypisovat existující soubory nebo soubory, které měly problémy s oprávněními, nebo je seskupovat do souborů, které se čte, a souborů, které se zapisují). Také strace je pomalý, takže by bylo dobré s rychlejší volbou.

Přijatá odpověď:

Vzdal jsem to a nakódoval svůj vlastní nástroj. Abych citoval z jeho dokumentů:

SYNOPSIS
    tracefile [-adefnu] command
    tracefile [-adefnu] -p pid

OPTIONS
    -a        List all files
    -d        List only dirs
    -e        List only existing files
    -f        List only files
    -n        List only non-existing files
    -p pid    Trace process id
    -u        List only files once

Vydává pouze soubory, takže se nemusíte zabývat výstupem z strace .

https://gitlab.com/ole.tange/tangetools/tree/master/tracefile


Linux
  1. Seznam souborů seřazených číselně?

  2. Linux – podílíte se na e-mailové konferenci jádra?

  3. Jak přizpůsobit automatické doplňování Bash tak, aby vypisovalo soubory v jiném adresáři?

  1. Procházet složku a vypisovat soubory?

  2. Který příkaz se používá k řazení seznamu souborů/složek podle času?

  3. nm :Příkaz pro výpis symbolů v objektových souborech.

  1. Jak mohu vypsat soubory v archivu zip, aniž bych jej dekomprimoval?

  2. Vyloučit seznam souborů z hledání

  3. Jak vypsat strom zařízení jádra