脚本问题,先解压缩多个压缩的tar文件,然后解压缩C壳中的相同文件

问题描述 投票:0回答:1

我一直在尝试编写一个脚本,该脚本将在目录中搜索多个压缩的tar文件,解压缩它们,然后解压缩它们。但是我的问题是,每次我运行脚本时,它将执行第一个if语句,但不会执行第二个。我已经在单独的脚本中运行了这两个语句,并且它们都独立工作,但是在同一脚本中运行时却没有。我是否需要将它们合并在if then elseif语句中?这是我到目前为止所拥有的,感谢您的帮助。

#!/bin/csh
set x = (`find /Documents/*.gz -print`)
set v = (`find /Documents/*.tar -print`)

if ("$x" != "") 
then 
gunzip *
else
echo "No zip files found."
endif

if ("$v" != "")  then
foreach i ( $v )
tar -xvf $i
end
else
echo "No tar files found."
endif
if-statement foreach unzip csh
1个回答
0
投票

您仅需find即可执行相同操作;您实际上不需要循环:

find /Documents/*.gz -exec gunzip {} \;
find /Documents/*.tar -exec tar xvf {} \;

[-exec将在找到的每个文件上运行命令,{}被文件名替换,\;终止命令。

© www.soinside.com 2019 - 2024. All rights reserved.