【问题标题】:Output the Names of Copied Files in Shell Script在 Shell 脚本中输出复制文件的名称
【发布时间】:2012-10-18 15:14:39
【问题描述】:

我正在编写一个 bash 脚本来将配置文件复制到相应的目录中。我想输出我复制给用户的文件的名称。这是我目前所拥有的:

CONFIG_DIR="/home/stackoverflow/app/configs"
CONFIG_FILE="*.config"

cp $CONFIG_FILE $CONFIG_DIR

echo "$CONFIG_FILE was copied to $CONFIG_DIR"

我从中得到的输出是:

*.config was copied to /home/stackoverflow/app/configs

假设 stackoverflow.config 是脚本运行目录中唯一的 .config 文件。我想说:

stackoverflow.config was copied to /home/stackoverflow/app/configs

【问题讨论】:

  • cp -v 的输出可能就是您要查找的内容。

标签: bash shell unix output


【解决方案1】:

添加 -v 以复制并让它打印所有文件名(每行一个名称)或将 echo 更改为

echo $CONFIG_FILE was copied to $CONFIG_DIR

即删除双引号(在此示例中它们不是必需的)。

【讨论】:

    【解决方案2】:

    $CONFIG 移到引号外,以允许shell 扩展其通配符:

    echo $CONFIG_FILE "was copied to $CONFIG_DIR"
    

    【讨论】:

      【解决方案3】:
      CONFIG_DIR="/home/stackoverflow/app/configs"
      for file in *.config
      do
          cp $file $CONFIG_DIR
          echo $file was copied to $CONFIG_DIR
      done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-09
        • 1970-01-01
        • 2014-02-11
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多