2

ねえ、このエラーが何を意味するのか 100% わかりません。

% for f in "*" ; do cp $f ../backup/backup$f ; done
cp: ../backup/backup* not found

目的は、フォルダー内のすべてのファイルをバックアップ フォルダーにコピーし、ファイルの名前をバックアップに変更することです。

4

3 に答える 3

10

を引用符で囲んでは*いけません:

for f in * ; do cp $f ../backup/$f ; done

*引用符を使用すると、シェルがシェルを展開できなくなるため、意味するディレクトリ内のすべてのファイルではなく、というファイルを探します。

于 2010-03-16T21:06:14.977 に答える
7

あなたは間違ったことを引用しています: ワイルドカードではなく、変数を引用してください!

% for f in *; do cp "$f" "../backup/$f" ; done

ところで、この場合、次のように簡単に実行できます。

% cp * ../backup/

于 2010-03-16T21:10:43.143 に答える
3

またはこれかもしれません:

cp -b * ../backup 

名前を変更したい場合:

% for f in * ; do cp "$f" "../backup/${f}-backup" ; done
于 2010-03-16T21:35:33.427 に答える