我是unix的新手,正在练习一个简单的脚本来解压缩指定目录中的大量文件。我需要程序将拉链文件解压缩到另一个文件夹(我称之为oldzipped文件夹)。为简单起见,我删除了解压缩文件的部分代码,并且当前程序正在为特定文件而不是* tar.7z文件扩展。由于某种原因,mv语句不起作用。当我尝试运行脚本时,Unix会说以下内容。有人可以帮我一把吗?同样,我知道这是做事的漫长道路,但我想练习编写脚本。请你好,因为我对Unix很新:(
unzip5:第14行:[ASDE0002.tar.7z]:找不到命令
#!~/bin/bash
# My program to try to unzip several files with ending of tar.7z
# I have inserted the ability to enter the directory where you want this to be done
echo "What file location is required for unzipping?"
read dirloc
cd $dirloc
mkdir oldzippedfiles
for directory in $dirloc
do
if
[ASDE0002.tar.7z]
then
mv -f ASDE0002.tar.7z $dirloc/oldzippedfiles
fi
done
echo "unzipping of file is complete"
exit 0
答案 0 :(得分:4)
[
是接受参数的(有时是内置的)命令的名称。因此,您需要在调用任何其他程序之后放置一个空格。此外,您需要一个测试。例如,要确定文件是否存在且是文件,您需要使用-f
:
if [ -f ASDE0002.tar.7z ]
then
mv -f ASDE0002.tar.7z $dirloc/oldzippedfiles
fi
以下是一些other possible tests。