我正在尝试解压一个已移动到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对我来说完全陌生。
由于
答案 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 -