用Shell解压移动的文件

时间:2014-07-02 13:30:44

标签: shell

我正在尝试解压一个已移动到for循环内另一个文件夹的文件。这就是我到目前为止所得到的:

#! /bin/bash


for f in *.tar
do
   mv C:/Users/x/Documents/$f C:/Users/x/Documents/folder
   tar xvf "$f" -C C:/Users/x/Documents/folder
done

会抛出有关我想要解压的文件的错误。自从我移动它以来,我认为在该位置解开它会起作用。任何帮助表示赞赏!抱歉这个非常基本的问题,shell对我来说完全陌生。

由于

1 个答案:

答案 0 :(得分:2)

for f in *.tar

循环当前目录中的每个Tar文件,其中......

mv C:/Users/x/Documents/$f C:/Users/x/Documents/folder

...假设您当前在C:/Users/x/Documents/,或者整个脚本没有意义。 (编码错误,可能应该是for f in C:/Users/x/Documents/*.tar或者其他类似的,但是我们将按原样使用您的脚本来解决此问题。)

现在您将tarball移动到folder(如果存在),或者重命名为folder(如果不存在)。 (可以检查是否存在,或者使用尾部斜杠写为.../folder/,以便至少在错误消息不存在的情况下收到错误消息。)

总之...

tar xvf "$f" -C C:/Users/x/Documents/folder

...现在您正在尝试提取刚搬走的文件$f ,这当然会产生......

Cannot open: No such file or directory

要么这样做......

tar xvf "folder/$f" -C C:/Users/x/Documents/folder

...或者在你解开之前在cd进行folder

cd folder && tar xvf "$f" && cd -