extractor improve
This commit is contained in:
1
bin/archive-extract
Symbolic link
1
bin/archive-extract
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
archive-extract2folder
|
||||||
@@ -1,8 +1,36 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
_help() {
|
||||||
|
echo 'Usage:
|
||||||
|
|
||||||
|
archive-extract2folder [--ask] [arch1] [arch2] ...
|
||||||
|
Extracts archives (tar/tgz/tar.Z/zip/rar) to folder arch1/ creating an extra folder level
|
||||||
|
|
||||||
|
archive-extract [--ask] [arch1] [arch2] ...
|
||||||
|
Extracts archives (tar/tgz/tar.Z/zip/rar) to the current folder
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
--ask Ask before extracting
|
||||||
|
'
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
ASK=0
|
||||||
|
[[ -z "$1" ]] && _help
|
||||||
|
for (( i=1; i<=$#; i++ )); do
|
||||||
|
[[ ${!i} = "-h" ]] && _help
|
||||||
|
[[ ${!i} = "--help" ]] && _help
|
||||||
|
[[ ${!i} = "--ask" ]] && ASK=1
|
||||||
|
done
|
||||||
|
self=$( basename $0 )
|
||||||
|
|
||||||
for arch in "$@"; do
|
for arch in "$@"; do
|
||||||
|
if [[ ! -e "$arch" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
case "$arch" in
|
case "$arch" in
|
||||||
*.tar) D="`basename "$arch" .tar`"; U="tar -x -v -f"; ;;
|
*.tar) D="`basename "$arch" .tar`"; U="tar -x -v -f"; ;;
|
||||||
*.tar.gz) D="`basename "$arch" .tar.gz`"; U="tar -x -z -v -f"; ;;
|
*.tar.gz) D="`basename "$arch" .tar.gz`"; U="tar -x -z -v -f"; ;;
|
||||||
@@ -12,18 +40,32 @@ for arch in "$@"; do
|
|||||||
*.tar.bz2) D="`basename "$arch" .tar.bz2`"; U="tar -x -j -v -f"; ;;
|
*.tar.bz2) D="`basename "$arch" .tar.bz2`"; U="tar -x -j -v -f"; ;;
|
||||||
*.zip) D="`basename "$arch" .zip`"; U="unzip"; ;;
|
*.zip) D="`basename "$arch" .zip`"; U="unzip"; ;;
|
||||||
*.rar) D="`basename "$arch" .rar`"; U="unrar x"; ;;
|
*.rar) D="`basename "$arch" .rar`"; U="unrar x"; ;;
|
||||||
|
*)
|
||||||
|
echo "Cannot extract file $arch"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
archive=$( realpath "$arch" )
|
||||||
|
if [[ "$self" = "archive-extract2folder" ]]; then
|
||||||
|
out_folder="$PWD/$D/"
|
||||||
|
fi
|
||||||
|
if [[ "$self" = "archive-extract" ]]; then
|
||||||
|
out_folder="$PWD/"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "$FORCE_EXTRACT" ]]; then
|
if [[ "$ASK" == 1 ]]; then
|
||||||
echo "extract $arch to $PWD/$D/?"
|
echo "extract $arch to $PWD/$D/?"
|
||||||
read foo
|
read foo
|
||||||
else
|
else
|
||||||
echo "extracting $arch to $PWD/$D/"
|
echo "extracting $arch to $PWD/$D/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$self" = "archive-extract2folder" ]]; then
|
||||||
mkdir -p "$D"
|
mkdir -p "$D"
|
||||||
archive=$( realpath "$arch" )
|
|
||||||
pushd "$D"
|
pushd "$D"
|
||||||
$U "$archive"
|
$U "$archive"
|
||||||
popd
|
popd
|
||||||
|
fi
|
||||||
|
if [[ "$self" = "archive-extract" ]]; then
|
||||||
|
$U "$archive"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
sleep 1
|
|
||||||
|
|||||||
Reference in New Issue
Block a user