On Tue, 28 Feb 2006 11:41pm -0300, Thiago dos Santos wrote:
> fala pessoal, agradeço ajuda de todos desde já !
> vou colocar a questão original p/ ver se fica mais fácil:
>
> Create a bash script that searches for Windows executables on the shares. If
> an executable is found, the file should be moved to a directory outside of
> the share and a mail should be sent to the root of the Samba server.
> Depending on your programing skills, you can choose one of the following
> methods to determine if a file is a Windows executable:
> * Search for file extensions such as .exe or .com (not a secure solution)
> * Identify the file type using the command file.
Ah, OK...
Tu pode repetir todos os `find' que citei adicionando:
-iname '*.com' -or -iname '*.exe'
Percebeu? Por exemplo:
% find /diretorio -type f -iname '*.com' -or -iname '*.exe' \
-exec mv {} /outro/diretorio \;
Ou,
% find /diretorio -type f -print0 -iname '*.com' -or -iname '*.exe' \
xargs -I % -0 mv % /outro/diretorio
Ou,
% find /diretorio -type f -iname '*.com' -or -iname '*.exe' | xargs mv \
--target-directory=/outro/diretorio
Se tu quiser adicionar (ou só usar isto) a verificação do bit de execução
nos finds do exemplo, adiciona a opção -perm,
(...) -type f -perm +u=x,g=x,o=x
Se quiser/puder optar por zsh, pode fazer o primeiro com:
(Move todos arquivos de diretorio/ que acabam com .com ou .exe e que são
arquivos normais para /outro/diretorio):
% mv /diretorio/**/(*.{com,exe})(.) /outro/diretorio
O segundo com:
(Move todos arquivos de diretorio/ que são arquivos normais e que têm o
bit de execução ligado ou para o dono, grupo ou outros):
% mv /diretorio/**/(.x) /outro/diretorio
Ou opcionalmente juntar os dois:
(Move todos arquivos de diretorio/ que acabam com .com ou .exe e que são
arquivos normais com o bit de execução ligado ou para o dono, ou para o
grupo, ou para outros, e que o nome acaba com .com ou .exe):
% mv /diretorio/**/(*.{com,exe})(.x) /outro/diretorio
--
Felipe Kellermann
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html