嘿,不是 100% 确定这个错误是什么意思。
% for f in "*" ; do cp $f ../backup/backup$f ; done
cp: ../backup/backup* not found
目的是将所有文件复制到一个文件夹中到一个备份文件夹中,并将文件重命名为备份。
*
不应该在引号中:
for f in * ; do cp $f ../backup/$f ; done
当您使用引号时,这会阻止 shell 扩展它,因此它正在寻找一个名为 的文件*
,而不是目录中的所有文件,这就是您的意思。
您引用了错误的内容:引用变量,而不是通配符!
% for f in *; do cp "$f" "../backup/$f" ; done
顺便说一句,在这种情况下,您可以简单地执行以下操作:
% cp * ../backup/
或者可能是这样的:
cp -b * ../backup
如果要重命名它们:
% for f in * ; do cp "$f" "../backup/${f}-backup" ; done