New version for toarchive: https://gist.github.com/thingsiplay/889cb2899f35405e10839112f5181ab3#file-toarchive
(I have added a new version of the script. The old one is renamed to ‘toarchive-old’. The new script has some guard rails and more checks. Also original files can be removed automatically on success, like gzip does. But an option -r must be explicitly given here, like toarchive zip -r file.txt. Directories can be removed too, but the option uppercase -R is required here, as in toarchive zip -R my_dir. Have in mind this will use rm -r system command. Although some guard rails are in place to prevent massive fail, you should be very careful. Note that no file is removed, if -r or -R are not used at all.)
I always write little scripts and aliases that help me from time to time. I just wanted to share some of my newest simple scripts. There are probably better or easier ways to do, but writing and testing them is fun too. Both make use of the 7z
command, a commandline archive tool. Posting it here, so anyone can steal them. They are freshly written, so maybe there are edge cases.
#!/usr/bin/env bash
# Calculate CRC32 for each file.
if [ "${#}" -eq 0 ]; then
echo "crc32sum files..."
echo "crc32sum *.smc"
else
7z h -- "${@}" |
\grep --after-context "${#}" '^-------- ------------- ------------$' |
\grep --before-context "${#}" '^-------- ------------- ------------$' |
awk '{print $1 "\t" $3}' |
\grep -P '^[0-9A-Z]+\t'
fi
#!/usr/bin/env bash
# Create one archive for each file or folder.
if [ "${#}" -eq -1 ]; then
echo "toarchive ext files..."
echo "toarchive zip *.smc"
else
ext="${1}"
shift
opt=()
stop_parse=false
for arg in "${@}"; do
if [ ! "${stop_parse}" == true ]; then
if [ "${arg}" == "--" ]; then
stop_parse=true
opt+=(--)
continue
elif [[ "${arg}" =~ ^- ]]; then
opt+=("${arg}")
continue
fi
fi
file="${arg}"
7z a "${opt[@]}" "${file}.${ext}" "${file}"
done
fi
Well I used to use gzip to create
.gz
files. But as I use 7z a lot, that inspired me to write this function to get a similar functionality. Only the auto delete original files is not implemented. Maybe in the future. BTW I also usetar
for backing up files with a custom backup script. Want to share it someday too, but never got around to make it usable for others. So at least I’m half greybeard. :Dif you want to be a full greybeard, just tell them to rtfm instead of making it for them. lol