Como explicado em a resposta à qual você está vinculado, isso depende das configurações. Em princípio, atime
mudará toda vez que um arquivo for lido e, para executar um script, você precisa lê-lo. Então, sim, normalmente, o atime
será alterado toda vez que o script for executado. Isso é facilmente demonstrado verificando o atime atual, executando o script e, em seguida, verificando-o novamente:
$ printf '#!/bin/sh\necho "running"\n' > ~/myscript.sh
$ stat -c '%n : %x' ~/myscript.sh
/home/terdon/myscript.sh : 2016-02-23 10:36:49.349656971 +0200
$ chmod 700 ~/myscript.sh
$ stat -c '%n : %x' ~/myscript.sh ## This doesn't change atime
/home/terdon/myscript.sh : 2016-02-23 10:36:49.349656971 +0200
$ ~/myscript.sh
running
$ stat -c '%n : %x' ~/myscript.sh ## Running the script does
/home/terdon/myscript.sh : 2016-02-23 10:38:20.954893580 +0200
No entanto, se o script residir em um sistema de arquivos montado com as opções noatime
ou relatime
(ou qualquer uma das outras opções possíveis que podem afetar como atime
é modificado), o comportamento será diferente:
noatime
Do not update inode access times on this filesystem (e.g., for
faster access on the news spool to speed up news servers). This
works for all inode types (directories too), so implies nodira‐
time.
relatime
Update inode access times relative to modify or change time.
Access time is only updated if the previous access time was ear‐
lier than the current modify or change time. (Similar to noat‐
ime, but it doesn't break mutt or other applications that need
to know if a file has been read since the last time it was modi‐
fied.)
Since Linux 2.6.30, the kernel defaults to the behavior provided
by this option (unless noatime was specified), and the stricta‐
time option is required to obtain traditional semantics. In
addition, since Linux 2.6.30, the file's last access time is
always updated if it is more than 1 day old.
Você pode verificar quais opções seus sistemas montados estão usando executando o comando mount
sem argumentos. Os testes que mostrei acima foram executados em um sistema de arquivos que foi montado usando a opção relatime
. Com esta opção, atime
é atualizado se i) o atual atime
for mais antigo que a modificação atual ou a hora da alteração ou ii) não tiver sido atualizado por mais de um dia.
Portanto, em um sistema com relatime
, o atime
não é alterado quando um arquivo é acessado se o atual atime
for mais recente que o horário atual da modificação:
$ touch -ad "+2 days" file
$ stat --printf 'mtime: %y\natime: %x\n' file
mtime: 2016-02-23 11:01:53.312350725 +0200
atime: 2016-02-25 11:01:53.317432842 +0200
$ cat file
$ stat --printf 'mtime: %y\natime: %x\n' file
mtime: 2016-02-23 11:01:53.312350725 +0200
atime: 2016-02-25 11:01:53.317432842 +0200
O atime
é sempre alterado no acesso se tiver mais de um dia. Mesmo que a hora da modificação seja mais antiga:
$ touch -ad "-2 days" file
$ touch -md "-4 days" file
$ stat --printf 'mtime: %y\natime: %x\n' file
mtime: 2016-02-19 11:03:59.891993606 +0200
atime: 2016-02-21 11:03:37.259807129 +0200
$ cat file
$ stat --printf 'mtime: %y\natime: %x\n' file
mtime: 2016-02-19 11:03:59.891993606 +0200
atime: 2016-02-23 11:05:17.783535537 +0200
Assim, na maioria dos sistemas Linux modernos, atime
só será atualizado todos os dias, a menos que o arquivo tenha sido modificado desde que foi acessado pela última vez.