次のスクリプトをオンラインで見つけました。~/.bashrc に追加するように指示されました。Linux ディストリビューションの 64 ビット バージョンをインストールするまでは問題なく動作していました。(Kali Linux - Debian Wheezy )。何が起こっているのかわかりません。なぜ機能しないのですか?どうすれば修正できますか? 私は Linux は比較的新しく、bash スクリプトもまったく初めてです。脚本:
#!/bin/bash
# function Extract for common file formats
function extract {
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
# NAME=${1%.*}
# mkdir $NAME && cd $NAME
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
}
エラー:
extract LibreOffice.tar.gz
tar (child): ../LibreOffice.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
編集:tarのコメントName=...
を外してmkdir $NAME...
圧縮を解除します。ただし、.zip は解凍されませんでした。今、別のファイルでそれを試しています。
編集2:私は本当にばかだと感じます。これを投稿する前に、わざわざコードを見ませんでした。コメントを外すとこれが修正されます。しかし、なぜコードのコメントを外す必要があるのに、64 ビット版をインストールする前はそうしなかったのでしょうか?