shell script para o nome do arquivo chmod, mas apenas em novos arquivos desde a última execução do script

1

Eu tenho um diretório onde novos arquivos são carregados e recebem nome de arquivo numérico como eles são enviados. o nome do arquivo são números que aparecem.

Eu preciso alterar as permissões do arquivo, mas apenas dos novos arquivos enviados desde o último chmod.

alguma ideia?

    
por ashwin mehta 03.08.2015 / 18:50

2 respostas

1

Ao fazer a ação de cada chmod, toque em um arquivo, por exemplo touch /tmp/foo .

Quando a próxima iteração aparecer, use find -newer, por exemplo find . -newer /tmp/foo -exec chmod 755 {} \; e, em seguida, touch /tmp/foo .

    
por 03.08.2015 / 18:59
0

Se você gosta de fazer isso, é necessário comparar o "ctime" dos arquivos com o "atime" do script. Isso não pode ser feito por uma implementação de baunilha find (1), mas apenas por uma descoberta estendida.

Com uma implementação moderna de encontrar (1) como o BSD find ou sfind, você pode usar -newerXY, no seu caso:

encontre. -newerca script

e isso localizará todos os arquivos com uma mudança de status após a última leitura no "script".

Tenha em atenção que algumas distribuições do Linux montam por padrão sistemas de ficheiros com -noatime.

    
por 19.08.2015 / 14:51