複数のファイルをコピーしてファイル名の末尾に追加

複数のファイルをコピーしてファイル名の末尾に追加

このために実際にスクリプトを作成する必要はないようです。私は何をしたいですかcp /etc/*.conf $1.orig?それともcp /etc/{a.conf,b.conf} _firstarg_.orig速くて痛みなしにこれを行う方法はありますか?

答え1

ループを使用するのは簡単です:

for f in /etc/*.conf; do cp -v -- "$f" "$f.orig"; done

答え2

すべてのシェルでループを使用できます:

for x in /etc/*.conf; do cp -i -- "$x" "$x.orig"; done

-i既存のファイルを上書きしたくない場合は削除してください。)

zshを使用すると、提供された機能を使用できますzcm(最初の3行を自分の行に入力します~/.zshrc)。

autoload zmv
alias zcp='zmv -C'
alias zln='zmv -L'
zcp '/etc/(*.conf)' '/etc/$1.orig'

(既存のターゲットファイルを上書きするには-f後で追加してください。)zcp

関連情報