如何在同一 shell 脚本中将文件复制到自动创建的文件夹

如何在同一 shell 脚本中将文件复制到自动创建的文件夹

我创建了一个 Automator 应用程序,它将在 Shell 脚本的帮助下为项目创建一个带有子文件夹的新文件夹。该应用程序首先询问项目名称和位置(目录),创建后会打开新创建的项目文件夹。

例如:

在此输入图像描述

到目前为止,它按预期工作,但是我也尝试自动将一些文件添加到子文件夹中,但我陷入困境,而且我无法自己找到解决方案。

基本上,我试图将文件从另一个文件夹复制到新创建的子文件夹之一,但我收到(主要是)以下两个错误:

  1. “运行 Shell 脚本”操作遇到错误:“用法:cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 目标文件 cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 ... 目标目录”用法:cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 目标文件 cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 ... 目标目录

  2. “运行 Shell 脚本”操作遇到错误:“cp: /path/to/sourcefile/file.pdf: 没有这样的文件或目录”

    这就是我所拥有的:

在此输入图像描述

mkdir "$1/$2"
mkdir "$1/$2/Guides_and_Bulletins"
mkdir "$1/$2/Pictures"
mkdir "$1/$2/Schematics"
mkdir "$1/$2/Schematics/Calculator"
mkdir "$1/$2/Schematics/As_built"
mkdir "$1/$2/Site_Docs"

cp "/path/to/sourcefile/file.pdf" "/$1/$2/Guides_and_Bulletins/file.pdf"

在该示例中,我尝试通过上述操作将 file.pdf 从一个位置复制到新创建的 Guides_and_Bulletins 子文件夹,但它当然不起作用。

任何帮助将不胜感激!谢谢

注意:我当然正在更改 cp 的路径“/path/to/sourcefile/file.pdf”“$1/$2/Guides_and_Bulletins/”到正确的位置

答案1

您创建了一个目录:

mkdir "$1/$2"

但随后您尝试将文件复制到可能不同的目录:

cp "/path/to/sourcefile/file.pdf" "/$1/$2/Guides_and_Bulletins/file.pdf"

尝试:

cp "/path/to/sourcefile/file.pdf" "$1/$2/Guides_and_Bulletins/file.pdf"

此外,还可以对脚本进行一些简化:

mkdir -p "$1/$2/Guides_and_Bulletins" \
         "$1/$2/Pictures" \
         "$1/$2/Schematics" \
         "$1/$2/Schematics/Calculator" \
         "$1/$2/Schematics/As_built" \
         "$1/$2/Site_Docs"

cp "/path/to/sourcefile/file.pdf" "$1/$2/Guides_and_Bulletins/"

相关内容