2

我是 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
4

1 回答 1

4

[是接受参数的(有时是内置的)命令的名称。因此,您需要在它之后放置一个空格,就像调用任何其他程序时一样。另外,你需要一个测试。例如,要确定文件是否存在并且是文件,您需要使用-f

if [ -f ASDE0002.tar.7z ]
then
    mv -f ASDE0002.tar.7z $dirloc/oldzippedfiles
fi

这里有一些其他可能的测试

于 2013-01-10T16:38:31.687 回答