fcorbelli / zpaqfranz

Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix
MIT License
275 stars 25 forks source link

A way to exclude certain files? #74

Closed pdr76 closed 1 year ago

pdr76 commented 1 year ago

A switch that allows you to skip files, either for Add, List or Extract. I used "-not" but it keeps adding the files.

fcorbelli commented 1 year ago

Please use " (in particular on linux) and * as wildcard Multiple -not can be used

pdr76 commented 1 year ago

Before I had used: -not *.7z and it kept adding the 7z file, but using the " worked perfectly, I think you should document it in the help, including clarifying the use of quotes.

fcorbelli commented 1 year ago

*NIX AND DOUBLE QUOTES Please, on non-Windows systems, DO NOT FORGET THE DOUBLE QUOTES, especially with multipart files. "test????.zpaq" is good test????.zpaq is BAD

I'll try to write even more clearly 😄

fcorbelli commented 1 year ago

What do you think about this disclaimer?
Any suggestions?
Too long?

A key note is the use of double quotes, especially on *nix systems,
and even more so when using wildcard characters such as * and ?

Translation

When command-line strings are entered, there are differences between 
Windows and *nix.

On the latter, the "explosion" of wildcards normally takes place 
BEFORE programs are started.

This happens because the relevant shells (bash, etc.) process parameters 
and pass them to the program (zpaqfranz in this case) already expanded.  
Enclosing characters in double quotes preserves the literal value of all 
characters within the quotes, with the exception of $, `, \

Actually, the situation is much more complex, but I don't want to go  
into too much detail.

In Windows, however, the parameters are passed to the program as they are.

Therefore, sometimes, you write on *nix as you would on Windows, 
getting different results or even wrong one.

A few examples I hope will better clarify the fundamental importance of 
appropriately using the " on *nix

"test_????.zpaq" is good
test_????.zpaq   is BAD

"*francia*"      is good
*francia*        is BAD

This is OK on Windows, but not on Linux
zpaqfranz a z:\test_??? * -only *.cpp

You have to write something like that
zpaqfranz a "/tmp/test_???" /whatever -only "*.cpp"

This is good
zfsadd /tmp/kong.zpaq "tank/d@2021" "--60d"

There is a bit of heuristics inside zpaqfranz to make some commands  
run on *nix with the same logic as on Windows but It is partial,  
precisely because the   parameters arrive "pre-digested" on *nix.

Short version: Luke, in addition to using the Force, uses double quotes!
fcorbelli commented 1 year ago

Now, after each help, there is a disclaimer

root@aserver:/tmp/kazzo # zpaqfranz h f
zpaqfranz v58.10i-JIT-L,HW SHA1/2,(2023-09-14)
CMD   f (fill, or wipe)
+ :               Fill (wipe) 99% of free disk space in 500MB chunks
                  Check if disk-controller-system-RAM-cache-cables are working fine
+ : -verbose      Show write speed (useful to check speed consistency)
+ : -force        Do NOT delete (after run) the temporary filename. By default free
+ : -zero         Zero-fill instead of random. Use to prepare a thin VMDK shrink
+ : -verify       For -zero: do a verify.
    Examples:
Fill (wipe) almost all free space:   f z:\
Fill (wipe) keep temp files:         f z:\ -force -verbose
Zero free space (VM shrink):         f z:\ -zero
Zero free space (WITH verify):       f z:\ -zero -verify
--------------------------------------------------------------------------------------
************ REMEMBER TO USE DOUBLE QUOTES! ************
*** -not *.cpp    is bad,    -not "*.cpp"    is good ***
*** test_???.zpaq is bad,    "test_???.zpaq" is good ***
pdr76 commented 1 year ago

*NIX AND DOUBLE QUOTES Please, on non-Windows systems, DO NOT FORGET THE DOUBLE QUOTES, especially with multipart files. "test????.zpaq" is good test????.zpaq is BAD

I'll try to write even more clearly 😄

I use Windows, I also needed to use "

fcorbelli commented 1 year ago

A long explanation would be necessary, so I made it short: " for all

😭

fcorbelli commented 1 year ago

Can you please take a look here?

https://github.com/fcorbelli/zpaqfranz/wiki

Do you have any suggestions?

Thank you