在Bash中更改新文件并移动到新目录

时间:2018-02-09 09:41:53

标签: bash

我是Bash的新手。 我想写一个脚本,它有三个变量:

  1. 旧文件名
  2. 新文件名
  3. 将文件移至
  4. 的目录名称

    我试图更改文件的名称并将其移动到目录中。 我知道使用 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'customer' => [ 'driver' => 'session', 'provider' => 'customers', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'customers' => [ 'driver' => 'eloquent', 'model' => App\Models\Customer::class, ], ], 可以更改名称并将其移动到其他目录。 我知道如何使用我刚刚在终端中键入的命令来完成它,但我在这些命令中使用变量时遇到了一些麻烦。该目录与文件位于同一位置,我从那里运行脚本。

    示例:

    mv

    结果:old_file="abc" new_file="cba" dir="yyy" 中没有更多名为abc的文件,但.中有一个名为cba的文件包含./yyy所拥有的相同信息。

1 个答案:

答案 0 :(得分:0)

基本上你需要使用脚本变量来调用mv命令。请注意,变量在双引号之间,以避免在查找空格或其他特殊字符时bash拆分名称。

#!/bin/bash

old_file=$1
new_file=$2
dir=$3

mv "$old_file" "$dir"/"$new_file"

你应该调用它:

./script "abc" "cba" "yyy"

最后,请注意文件“abc”必须存在于当前目录(脚本所在的目录)中,文件夹“yyy”也必须存在于当前目录中(或者是绝对路径)。