0

我正在尝试编写一个脚本,将文件从一个目录复制到另一个目录并为它们添加 .bak 扩展名。我很难弄清楚如何添加扩展。

foreach file in ($argv[1]/*)
    cp $file $argv[2]
end
4

2 回答 2

1

做出一堆假设(主要是脚本的大纲是有效的 C shell 语法,并且文件名中的空格不是问题),那么您可能需要使用以下basename命令:

foreach file in ($argv[1]/*)
    cp $file $argv[2]/`basename $file`.bak
end

basename命令删除路径名,因此文件将精确复制到 . 命名的目录中$argv[2]。如果您也希望保留目录层次结构,则必须更加努力。

于 2013-03-19T00:06:58.617 回答
0

$1 和 $2 是脚本的参数(目录):

for f in $1/*
do
    fname=$(basename $f)
    cp $f $2/$fname.bak
done
于 2013-03-18T23:55:40.220 回答