-bin/unarchive
This commit is contained in:
		
							parent
							
								
									e5242f47ab
								
							
						
					
					
						commit
						7907acde43
					
				|  | @ -1,54 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # Extracts the contents of archives. | ||||
| # | ||||
| # Adapted from a script by Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| 
 | ||||
| success= | ||||
| file_name= | ||||
| extract_dir= | ||||
| while (( $# > 0 )); do | ||||
|     if [[ ! -s $1 ]]; then | ||||
|         print "$0: file not valid: $1" >&2 | ||||
|         shift | ||||
|         continue | ||||
|     fi | ||||
| 
 | ||||
|     success=0 | ||||
|     file_name="${1:t}" | ||||
|     extract_dir="${file_name:r}" | ||||
|     case ${1:l} in | ||||
|         *.tar.gz|*.tgz) tar xvzf "$1" ;; | ||||
|         *.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; | ||||
|         *.tar.xz|*.txz) tar --xz --help &> /dev/null \ | ||||
|             && tar --xz -xvf "$1" \ | ||||
|             || xzcat "$1" | tar xvf - ;; | ||||
|         *.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ | ||||
|             && tar --lzma -xvf "$1" \ | ||||
|             || lzcat "$1" | tar xvf - ;; | ||||
|         *.tar) tar xvf "$1" ;; | ||||
|         *.gz) gunzip "$1" ;; | ||||
|         *.bz2) bunzip2 "$1" ;; | ||||
|         *.xz) unxz "$1" ;; | ||||
|         *.lzma) unlzma "$1" ;; | ||||
|         *.Z) uncompress "$1" ;; | ||||
|         *.zip) unzip "$1" -d $extract_dir ;; | ||||
|         *.rar) unrar &> /dev/null \ | ||||
|             && unrar x -ad "$1" \ | ||||
|             || rar x -ad "$1" ;; | ||||
|         *.7z) 7za x "$1" ;; | ||||
|         *.deb) | ||||
|             mkdir -p "$extract_dir/control" | ||||
|             mkdir -p "$extract_dir/data" | ||||
|             cd "$extract_dir"; ar vx "../${1}" > /dev/null | ||||
|             cd control; tar xzvf ../control.tar.gz | ||||
|             cd ../data; tar xzvf ../data.tar.gz | ||||
|             cd ..; rm *.tar.gz debian-binary | ||||
|             cd .. | ||||
|             ;; | ||||
|         *)  print "$0: cannot extract: $1" >&2 | ||||
|             success=1 | ||||
|             ;; | ||||
|     esac | ||||
|     shift | ||||
| done | ||||
		Loading…
	
		Reference in a new issue