help with 7za


  1. argedion

    argedion The TechnoFrog Moderator

    I need to exclude zip files from an archive that will be regulary updated. does anyone know how to do this I have tried several different ways

    7za -ax{*.zip;*.7z} archive.7z sdd/stuff
    7za archive.7z sdd/stuff -x{*.zip;*.7z}

    all return error "Incorrect command line"

    any help would be appreciated

    thanks

    Advertisement
  2. 9to5cynic

    9to5cynic Well-Known Member

    Hmm.. I don't this is 100% what you were going for, but I *think* it'll work.

    I did this with 7zr by they way... I think it's quite similar.

    Code:
    ls /your/dir | grep -v ".7z" | grep -v ".zip" > /tmp/out.1
    7zr a arch1.7z @/tmp/out.1
    
    I tried it a few ways before and I was getting the same error you were. I think it has to do with the brace expansion, but I'm not sure. This just creates a list file and then calls that list file.

    Hope that helps. :)
    EarlyMon and argedion like this.
  3. argedion

    argedion The TechnoFrog Moderator

    not having any luck there either
  4. 9to5cynic

    9to5cynic Well-Known Member

    Shoot. Maybe 7za and 7zr are not as similar as I thought....

    How is your archive directory set up? Is it all files in one directory - or are there multiple directories?

    Hmm... What error are you getting? That same one with Incomplete command or whatever it said?
    argedion likes this.
  5. EarlyMon

    EarlyMon The PearlyMon Moderator

    From the man page -

    -x[r[-|0]]]{@listfile|!wildcard}

    So, doesn't !wildcard mean that no wildcards are allowed?

    Maybe better to create a list of the files you want to exclude and then input that list?
    9to5cynic and argedion like this.
  6. argedion

    argedion The TechnoFrog Moderator

    as a test I was doing ~/Downloads/temp I had a zip file in temp along with some other regular files everytime I do something similar to this

    7za a temp.7z ~/Downloads/temp -x!*.zip
    I get the error of it still zipping the zip file if i add the " r -x!" then i get incorrect command

    IF I SHOOT IT THEN I GET A INCORRECT COMMAND WITH A CRACKED SCREEN.


    @Early
    Yeah I have done that I have done -ax I have put it up front of the commands, behind them and still get the same thing either it will make the archive adding the zip file or it gives me the incorrect command error.

    Basically when I zip up the contents from my SDCARD in the phone I want to archive everthing except for the stuff that is already in archive format. no need to compress that stuff again. I guess I may have to go through and remove the zips before I run my bash to zip the sdcard up. I was going to put this in conjuction with my other bash that copies the entire content of the sdcards using adb command.
    I was going to automate the process of compressing those backups and removing everything from the original except the archived files that were there. I could then rsync to an archived folder those files and then delete the source files and finally delete the empty directorys.

    Sounds simple right???????
  7. 9to5cynic

    9to5cynic Well-Known Member

    I saw that, I didn't get it. But that makes sense (the ! and all).... what's the part with square brackets mean?

    Hmm... I'd play around with that ls into grep I had up a few posts... that *should* be doing that.
    When I tested it with 7zr, it would list the contents of my directory except anything with a zip or 7z file extension... and it would use that as the include list.
    EarlyMon and argedion like this.
  8. EarlyMon

    EarlyMon The PearlyMon Moderator

    Anything in brackets means optional and an exclamation mark means not.

    {|} means use one or the other on either side of the bar. The {|} aren't part of the command sequence.

    That's usually how those work.

    argedion - can you use a script to add files to the archive in a loop provided their not already zips?
    9to5cynic and argedion like this.
  9. argedion

    argedion The TechnoFrog Moderator

    not sure i haven't done that before but i haven't done this before either so its all new to me. I will play around this weekend and see what I can come up with. I'll try using grep and make a list as 9to5 suggest.
  10. EarlyMon

    EarlyMon The PearlyMon Moderator

    ls | sed '/zip$/d' | sed '/7z$/d' > /tmp/zip_list

    LoL I just went back and looked at 9to5's list maker, same thing. The dollar says to match the pattern only to end of the line.
    9to5cynic likes this.
  11. 9to5cynic

    9to5cynic Well-Known Member

    I'm going to finally have to learn sed and awk one of these days... ;)
  12. EarlyMon

    EarlyMon The PearlyMon Moderator

    9to5cynic and argedion like this.
  13. argedion

    argedion The TechnoFrog Moderator

    when i last did it this morning it made the list but still tried to archive a zip file so not sure what i did wrong will play with it some this evening if i feel like it. right now i'm battling being sick :(
  14. EarlyMon

    EarlyMon The PearlyMon Moderator

    Sorry to hear that. :(

    If you get a chance, attach the list file here.
  15. argedion

    argedion The TechnoFrog Moderator

    its to big for me to attach here let me see if i can get it in drop box and get you a link for it.

    here try this:
    http://dl.dropbox.com/u/38130332/xclude.txt
  16. EarlyMon

    EarlyMon The PearlyMon Moderator

    The list file is too big???
  17. argedion

    argedion The TechnoFrog Moderator

    only by a hundred kb or so thats all :rolleyes:

    line number 6184 is where i have the problem even though nothing is in the list there (all zips in that folder) it starts copying the zip files anyways
  18. EarlyMon

    EarlyMon The PearlyMon Moderator

    Attach plain zip of list file? :)
  19. argedion

    argedion The TechnoFrog Moderator

    have drop box addy a few post up
    EarlyMon likes this.
  20. EarlyMon

    EarlyMon The PearlyMon Moderator

    Yeah, that's not going to work, the directory references override the file specifications, that's why zips are being included.

    Seems like an adb pull followed by a local zip would be more effective, time wise.

    I'll help chew this over and give more options, after pondering...
    argedion likes this.
  21. Speed Daemon

    Speed Daemon Disabled

    Regular expressions are the answer to this without a doubt, and to learn sed and awk you need to know regular expressions.

    It's been a while since I've written a script for 7za so the examples that I have may not be up to date. If not too much has changed, you should be able to pipe the output of something like `find' into 7za on the same command line. Something like :

    find (args) | 7za a -t7z -mx=9 -mmt=on myfile.7z -

    will pipe the stdout of find into stdin of 7za, eliminating the need for an intermediate file. Although I'm really rusty on find, I know it can do what you want because I've seen people do it that way.

    Now let me see if my O'Reilly "Regular Expressions" book is reachable...
    9to5cynic and argedion like this.

Share This Page