Eu usaria strace
para capturar toda a sessão, e pegaria a leitura do teclado navegando na saída do script e, em seguida, encontrando todas as chamadas abertas depois disso. Isso funciona com o Linux e alguns outros sistemas. Há um traço semelhante para o BSD (o MacOS é uma história diferente).
No entanto, tcsh provavelmente não abre os arquivos, mas os lista a partir do diretório. Strace ajudaria com isso também. Por exemplo, em uma verificação rápida, vejo a abertura do diretório atual usando openat
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
e, em seguida, use a função lstat
para determinar quais são as entradas de interesse (para que possa classificá-las, decidir quais são os arquivos versus diretórios, etc.):
lstat("xterm.desktop", {st_mode=S_IFREG|0444, st_size=1921, ...}) = 0
O "." é o diretório atual. O programa lê uma lista de entradas de diretório que podem ser arquivos, diretórios, links simbólicos, etc., mas que não são classificados (e os tipos são desconhecidos, até usar stat
/ lstat
para perguntar).
locate
e whereis
não mostram dados úteis, pois não usam as mesmas regras para encontrar os arquivos como tcsh
.