dot-files/shell/.functions

71 lines
1.9 KiB
Plaintext
Raw Normal View History

2019-07-11 13:26:24 +02:00
# Creates an archive (*.tar.gz) from given directory.
function maketar() { tar cvzf "${1%%/}.tar.gz" "${1%%/}/"; }
# Create a ZIP archive of a file or folder.
function makezip() { zip -r "${1%%/}.zip" "$1" ; }
function extract() {
2019-07-11 13:26:24 +02:00
if [ -z "$1" ]; then
# 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
if [ -f "$1" ] ; then
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" ;;
2019-07-11 13:26:24 +02:00
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "$1 - file does not exist"
fi
fi
}
# jump directorys upwards until it hits a directory with multiple folders
function up() {
local d=""
limit="$1"
2019-07-11 13:26:24 +02:00
for ((i=1 ; i <= limit ; i++))
do
d="$d/.."
2019-07-11 13:26:24 +02:00
done
d=$(echo "$d" | sed 's/^\///')
2019-07-11 13:26:24 +02:00
if [ -z "$d" ]; then
d=..
fi
cd "$d"
2019-07-11 13:26:24 +02:00
}
# create an directory and directly cd into it
function mcd() {
mkdir -p "$1"
cd "$1"
2019-07-11 13:26:24 +02:00
}
# Weather in your terminal, optionally take the city in argument (e.g: VPN)
function meteo() {
curl "http://wttr.in/$1" # Bonus: try to see the weather on 'moon'
}
# Use Vim as an Info reader with a plug-in
function vinfo() {
page="$1"
shift
node="${*// /\ }"
echo vim "+Info $page $node" "+only"
vim "+Info $page $node" "+only"
}