【问题标题】:How to handle the path variable with space如何处理带空格的路径变量
【发布时间】:2017-02-01 01:48:46
【问题描述】:

foldername=$(echo 'A A_2016' | cut -f 1 -d '_') mv "$filename" $foldername/ foldername is 'A A' 有一个空格,那么如何处理。 谢谢。

【问题讨论】:

  • 不清楚你问的是什么。为什么不能简单地使用mv "$filename" A\ A_2016/mv "$filename" A\ A/
  • 我从某处得到一个字符串,然后将其拆分得到文件夹名称,所以在拆分之前我不知道文件夹名称,无法使用您的方式修复。

标签: linux bash shell path command


【解决方案1】:

只需在变量周围使用引号:

mv "$filename" "$foldername/"

【讨论】:

    【解决方案2】:

    您必须使用反斜杠后跟空格。例如,你必须写A\ A_2016

    【讨论】:

      【解决方案3】:

      创建的示例文件:

      touch 'A A_2016'
      ls -1
      A A_2016
      

      示例文件的名称检查:

      echo ${file}
      A A_2016
      

      使用变量扩展将其切碎后移动。

      mv "${file}" "${file##* }"
      ls -1
      A_2016
      

      【讨论】:

        【解决方案4】:

        只需添加一个反斜杠,如下所示: 让您的文件夹名称为“新文件夹”,路径为 usr/etc/new 文件夹

        mv aa.txt  usr/etc/new\ folder
        

        如果您使用变量,请使用它

        mv aa.txt "$FOLDERNAME/"
        

        【讨论】:

        • 但是我是从字符串中获取文件夹名称的,所以不知道文件夹名称是否包含空格。对我来说是黑盒子
        • 添加“”,变量名称为“$foldername/”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        • 1970-01-01
        • 2021-08-16
        • 2021-08-26
        • 1970-01-01
        相关资源
        最近更新 更多