我正在尝试编写一个脚本,将文件从一个目录复制到另一个目录并为它们添加 .bak 扩展名。我很难弄清楚如何添加扩展。
foreach file in ($argv[1]/*)
cp $file $argv[2]
end
我正在尝试编写一个脚本,将文件从一个目录复制到另一个目录并为它们添加 .bak 扩展名。我很难弄清楚如何添加扩展。
foreach file in ($argv[1]/*)
cp $file $argv[2]
end
做出一堆假设(主要是脚本的大纲是有效的 C shell 语法,并且文件名中的空格不是问题),那么您可能需要使用以下basename
命令:
foreach file in ($argv[1]/*)
cp $file $argv[2]/`basename $file`.bak
end
该basename
命令删除路径名,因此文件将精确复制到 . 命名的目录中$argv[2]
。如果您也希望保留目录层次结构,则必须更加努力。
$1 和 $2 是脚本的参数(目录):
for f in $1/*
do
fname=$(basename $f)
cp $f $2/$fname.bak
done