我有一堆需要恢复的目录,但必须先将它们打包成.tar.是否有一个脚本允许我将所有100多个目录打包到他们自己的tar中,所以dir变成了dir.tar.
到目前为止尝试:
for i in *; do tar czf $i.tar $i; done
Run Code Online (Sandbox Code Playgroud)
hzr*_*ari 49
如果目录名中有一些空格,那么您编写的脚本将无效,因为该名称将被拆分,并且如果它们存在于此级别,它也将是tar文件.
您可以使用此命令以递归方式列出目录:
find . -maxdepth 1 -mindepth 1 -type d
Run Code Online (Sandbox Code Playgroud)
这一个在每一个上执行tar:
find . -maxdepth 1 -mindepth 1 -type d -exec tar cvf {}.tar {} \;
Run Code Online (Sandbox Code Playgroud)
你在那个级别有没有空格的目录名?如果没有,您的脚本将正常工作.
我通常做的是用我想要执行的命令编写一个脚本:
$ for i in *
do
echo tar czf $i.tar $i
done
Run Code Online (Sandbox Code Playgroud)
然后你可以查看输出,看看它是否正在做你想要的.确定程序可以运行后,编辑命令行并删除echo命令.