如何在linux中将多个子文件夹压缩到单独的文件中?

如何在linux中将多个子文件夹压缩到单独的文件中?,linux,zip,Linux,Zip,我有以下目录: 文件夹A 文件夹_A1 文件夹 文件夹_B1 我想压缩子文件夹,所以最后我会有如下内容: for folder in Folder_*/Folder*; do cd "${folder%/*}" zip -r ../"${folder#*/}.zip" "${folder#*/}" cd .. done 文件夹_A1.zip 文件夹_B1.zip 您需要像这样在文件夹上循环: for folder in Folder_*/Folder*; do cd

我有以下目录:

  • 文件夹A
    • 文件夹_A1
  • 文件夹
    • 文件夹_B1

  • 我想压缩子文件夹,所以最后我会有如下内容:

    for folder in Folder_*/Folder*; do
      cd "${folder%/*}"
      zip -r ../"${folder#*/}.zip" "${folder#*/}"
      cd ..
    done
    
  • 文件夹_A1.zip
  • 文件夹_B1.zip

  • 您需要像这样在文件夹上循环:

    for folder in Folder_*/Folder*; do
      cd "${folder%/*}"
      zip -r ../"${folder#*/}.zip" "${folder#*/}"
      cd ..
    done
    

    您需要像这样在文件夹上循环:

    for folder in Folder_*/Folder*; do
      cd "${folder%/*}"
      zip -r ../"${folder#*/}.zip" "${folder#*/}"
      cd ..
    done
    

    谢谢你的回复,我能在zip文件中只保留文件夹\u A1,而不是像文件夹\u A/文件夹\u A1那样在zip文件中吗?我还可以在文件夹名中使用任何模式来运行此脚本吗?@user1812750我按要求编辑了答案:您必须下到子文件夹,并将孙子文件夹压缩到那里,然后重新启动。当然,您可以调整glob(
    *
    )模式以满足您的需要。谢谢您的回复,我可以只在zip文件中保留文件夹\u A1,而不是像在zip文件中保留文件夹\u A/文件夹\u A1吗?我还可以在文件夹名中使用任何模式来运行此脚本吗?@user1812750我按要求编辑了答案:您必须下到子文件夹,并将孙子文件夹压缩到那里,然后重新启动。当然,您可以调整glob(
    *
    )模式以满足您的需要。