複数のファイルの.bupファイルのコピーを作成するためのbashエイリアス

複数のファイルの.bupファイルのコピーを作成するためのbashエイリアス

私のカスタム.bashrcファイルがあります。私はコーディングの練習をたくさんして、生のテキストとJDKを使います。

私は "shopt -s extglob"を使用します。

各ファイルの.bupコピーを(非再帰的に)作成し、操作が完了したらそのファイルを終了する必要があります。

だから私はこれをしました:

alias do_bups='cp ./!(*.bup) ./*.bup'
alias do_bups_clear='rm ./*.bup'

何が起こったのか:

cp: target './*.bup' is not a directory

サフィックスが追加されたファイルをどのようにコピーしますか?

答え1

1つの方法は次のとおりです。

for f in ./!(*.bup); do
    cp "$f" "$f.bup"
done

より安全な方法:

for f in ./!(*.bup); do
    if [ -f "$f" ]; then
        cp -i "$f" "$f.bup"
    fi
done

関連情報