我在一个文件夹中有一堆 Ziped 文件,我想解压缩所有文件,但自动重命名同名的文件夹或文件,例如:
在ZIP_folder_1.zip
和ZIP_folder_2.zip
我有一个名为的文件夹my_name
,如果我使用上述命令解压缩所有内容,命令行会询问我是否要重命名它,所以,如果我有 3k 个同名文件夹,我就会发疯。
我正在尝试使用:
find . -type f -name "*.zip" -exec unzip {} -d {}.contents/;
但我看到
find: missing argument to `-exec'
另一点是:我可以传递目标文件夹吗?
谢谢!!!
谢谢。
答案1
的论点通常是和-exec
之间的内容-exec
\;
我首先尝试在{}.contents
和之间添加一个空格\;
,但我没有测试它以查看可能发生的事情
对于你的另一点,修改起始点可能find
比修改-exec
子句更容易。我建议做类似下面的事情,回想一下这$OLDPWD
是上一个之前的旧工作目录cd
(至少在 bash 中是这样的,在 tsch 中是这样的$owd
)
cd targetdirectory; find $OLDPWD -type f -name "*.zip" -exec unzip {} -d {}.contents /;
; cd $OLDPWD
如果你想的话,你可以在末尾添加一个来修饰它,这样你就可以回到你的起点