ref extract func

This commit is contained in:
TheK4n 2021-10-13 22:37:44 +03:00
parent 34320f0614
commit 1a0beb4999
2 changed files with 33 additions and 24 deletions

View File

@ -83,6 +83,6 @@ alias music='mplayer -shuffle ~/Music/*'
# python
# initializes first ./*/*/activate
# alias va='source "$(find -P . -maxdepth 3 -mindepth 3 -type f -name activate | sort | head -n 1)" &>/dev/null || echo "error: virtual env not found, use python3 -m virtualenv venv" >&2'
alias ve='python3 -m virtualenv venv'
# alias va='source "$(find -P . -maxdepth 3 -type f -name activate | sort | head -n 1)" &>/dev/null || echo "error: virtual env not found, use python3 -m virtualenv venv" >&2'
alias ve='python3 -m virtualenv venv && . venv/bin/activate'
alias vd='deactivate'

View File

@ -72,32 +72,41 @@ va() {
fi
}
# classic archive extractor
extract () {
if [ -f "$1" ] ; then
case "$1" in
*.tar.bz2) tar xvjf "$1" ;;
*.tar.gz) tar xvzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xvf "$1" ;;
*.tbz2) tar xvjf "$1" ;;
*.tgz) tar xvzf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "'$1' cannot be extracted via $0" >&2; return 1;;
esac
if [ -z "$1" ]; then # if string non-zero
# display usage if no parameters given
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
else
echo "'$1' is not a valid file" >&2
return 1
if [ -f "$1" ] ; then # if file exists
NAME=${1%.*} #
mkdir "$NAME" && cd "$NAME" || return
case $1 in
*.tar.bz2) tar xvjf ../"$1" ;;
*.tar.gz) tar xvzf - ../"$1" ;;
*.tar.xz) tar xvJf ../"$1" ;;
*.lzma) unlzma ../"$1" ;;
*.bz2) bunzip2 ../"$1" ;;
*.rar) unrar x -ad ../"$1" ;;
*.gz) gunzip ../"$1" ;;
*.tar) tar xvf - ../"$1" ;;
*.tbz2) tar xvjf ../"$1" ;;
*.tgz) tar xvzf ../"$1" ;;
*.zip) unzip ../"$1" ;;
*.Z) uncompress ../"$1" ;;
*.7z) 7z x ../"$1" ;;
*.xz) unxz ../"$1" ;;
*.exe) cabextract ../"$1" ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "$1 - file does not exist"
fi
fi
}
mcd () {
mkdir -p $1
cd $1
mkdir -p "$1" && cd "$1" || return
}