嘿,不是100%肯定这个错误意味着什么。
% for f in "*" ; do cp $f ../backup/backup$f ; done
cp: ../backup/backup* not found
目的是将所有文件复制到一个文件夹中,并将文件重命名为备份文件夹。
答案 0 :(得分:7)
*
不应该在引号中:
for f in * ; do cp $f ../backup/$f ; done
当你使用引号时,这会阻止shell扩展它,所以它正在寻找一个名为*
的文件,而不是你所指的目录中的所有文件。
答案 1 :(得分:7)
你引用了错误的东西:引用变量,而不是通配符!
% for f in *; do cp "$f" "../backup/$f" ; done
顺便说一下,在这种情况下,你可以简单地做:
% cp * ../backup/
答案 2 :(得分:2)
或者可能是这样:
cp -b * ../backup
如果您想要重命名它们:
% for f in * ; do cp "$f" "../backup/${f}-backup" ; done