复制所有参数但最后一个并将它们粘贴到Bash中的最后一个参数中

时间:2013-11-28 14:39:54

标签: bash shell arguments

如何复制所有参数但是最后一个并将它们粘贴在Bash的最后一个参数中?

所有参数都是文件位置,最后一个参数是文件夹位置。

说我有两个目录/ a和/ b / a包含x.txt y.txt z.txt和x.gz y.tar.gz和z.html

我需要一个可以调用的脚本copy_script.sh

./ copy_script.sh /a/*.txt / b

并且所有txt文件都应该复制到/ b

3 个答案:

答案 0 :(得分:2)

可以按照你想要的方式划分参数,但是 - 正如其他人指出的那样 - 在这种情况下是不必要的。

$ set -- a b c d e
$ echo "${@:0:$#}"
a b c d
$ echo "${@: -1}"    # Space is necessary
e

答案 1 :(得分:0)

如果您尝试这样做,则可能不需要,因为“mv”和“cp”命令已经知道最后一项是目的地:

mkdir joe      # create directory
touch a b      # create two files here
mv a b joe     # move both to new directory
ls joe         # check they are there
a   b          # yes

答案 2 :(得分:0)

这是bash中的一个基本操作,你不需要写一个脚本来做你想做的事情, cp 命令解决你的问题就是这样做:

cp a/*.txt b/

将所有扩展名.txt从目录 a 复制到目录 b