【问题标题】:Shell Script Copy All Files and Subdirectories - Folder Names With SpacesShell 脚本复制所有文件和子目录 - 带空格的文件夹名称
【发布时间】:2015-09-03 00:33:36
【问题描述】:

我正在尝试使用 shell 脚本复制所有文件和子目录。问题是一些文件夹名称有空格。

cp -r "//shrdata/Legal/test location/test folder/*" "//shrdata/Legal/open access/"

我得到的错误是“系统找不到指定的文件”

【问题讨论】:

    标签: shell copy


    【解决方案1】:

    试试:

    cp -r "/shrdata/Legal/test location/test folder"/* "/shrdata/Legal/open access/"
    

    要使* 正常工作,它必须在引号之外。

    示例

    假设我们有一个带有两个文件的test folder

    $ ls -1 test\ folder/
    file1
    file2
    

    现在,让我们尝试将* 放在引号中:

    $ echo "test folder/*"
    test folder/*
    

    因为* 用引号引起来,所以它不会扩展为文件名列表。相反,它仅被视为文字字符。因此,如果我们尝试以这种方式复制文件,我们将收到一个 file-not-found 错误,因为没有文件名为 *

    $ cp "test folder/*" target
    cp: cannot stat ‘test folder/*’: No such file or directory
    

    如果我们将* 放在引号之外,则将执行路径名扩展

    $ echo "test folder"/*
    test folder/file1 test folder/file2
    

    这意味着当与cp 一起使用时,此表单将正常工作。

    【讨论】:

      猜你喜欢
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多