compactando apenas alguns arquivos

0

Eu tenho uma pasta cnt , onde dentro eu tenho

a/estimate.txt
a/otherFolder/....
b/estimate.txt
b/otherFolder/...
...
z/estimate.txt
z/otherFolder/..

Eu quero ter um zip contendo

a/estimate.txt
b/estimate.txt
...
z/estimate.txt

Atualmente, estou usando zip -r cnt.zip cnt , o que zip muitas coisas incluem otherFolder que eu não quero.

Como conseguir o que menciono em questão?

    
por william007 12.04.2015 / 02:42

2 respostas

1

Parece que você precisa apenas dos arquivos estimate.txt nas subpastas de primeiro nível de cnt .

Você pode usar curingas para fazer isso; apenas execute zip -r cnt.zip cnt/*/estimate.txt .

Veja um exemplo:

$ ls -R cnt
cnt:
a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z

cnt/a:
estimate.txt  otherfolder

cnt/a/otherfolder:
file1  file2

cnt/b:
estimate.txt  otherfolder

cnt/b/otherfolder:
file1  file2

...

cnt/y/otherfolder:
file1  file2

cnt/z:
estimate.txt  otherfolder

cnt/z/otherfolder:
file1  file2

$ zip -r cnt.zip cnt/*/estimate.txt
  adding: cnt/a/estimate.txt (stored 0%)
  adding: cnt/b/estimate.txt (stored 0%)

...

  adding: cnt/y/estimate.txt (stored 0%)
  adding: cnt/z/estimate.txt (stored 0%)
    
por zhongfu 12.04.2015 / 03:02
1

Tente isto:

find /full/path/to/cnt/ -type f -name "estimate.txt" -exec zip -r cnt.zip {} +
    
por heemayl 12.04.2015 / 02:55