Exclui arquivos em um loop for

3

Eu quero excluir o diretório / lib dentro dos arquivos apk. Eu consegui fazer isso com:

for DIR in ~/ABC ~/ABD 
 do
  cd $DIR
   for APK in *
    do
     if test -f "$APK"
      then
       zip -d $APK /lib*
     fi
   done 
done

agora eu quero excluir arquivos que tenham vvs ou tita no nome do arquivo. Eu realmente não tenho ideia de como fazer isso.

    
por oceanic 09.04.2013 / 17:26

2 respostas

2

O -x file|directory|list é sua chave

zip -d $APK /lib* -x *vvs* *tita*

Nas páginas man:

   -x files
   --exclude files
          Explicitly exclude the specified files, as in:

                 zip -r foo foo -x \*.o

          which  will  include the contents of foo in foo.zip while excluding
          all the files that end in .o.  The backslash avoids the shell filename
          substitution, so that the name matching is performed by zip at all
          directory levels.

          Also possible:

                 zip -r foo foo [email protected]

          which will include the contents of foo in foo.zip while excluding all
          the files that match the patterns in the file exclude.lst.

          The long option forms of the above are

                 zip -r foo foo --exclude \*.o

          and

                 zip -r foo foo --exclude @exclude.lst

          Multiple patterns can be specified, as in:

                 zip -r foo foo -x \*.o \*.c

          If there is no space between -x and the pattern, just one value is
          assumed (no list):

                 zip -r foo foo -x\*.o

          See -i for more on include and exclude.
    
por 09.04.2013 / 17:45
0

Adicione uma declaração "interior if", que use uma dessas abordagens para determinar se o $ APK contém as strings "vvs" ou "tita"

link

    
por 09.04.2013 / 17:33