指定できることは承知していますが、次のように単純であっても、ファイル-i.bak
を削除する必要があることに対処したくありません。.bak
find . -name '*.bak' -exec rm {} \;
sed
デフォルトで、-i
インライン置換するすべてのファイルを指定するたびに、次のようなものに戻すように監査できる方法はあります/www/backups
か?
バックアップ ファイルをまったく使用せずにインライン置換するだけの場合は、拡張子を off: のままにしておきますsed -i 's/pat/rep/'
。
他の場所のバックアップに関しては、GNU sedは次のように述べています。
次のルールに従います。拡張子に * が含まれていない場合は、現在のファイル名の末尾に接尾辞として追加されます。拡張子に 1 つ以上の * 文字が含まれている場合、各アスタリスクは現在のファイル名に置き換えられます。これにより、サフィックスの代わりに (またはサフィックスに加えて) バックアップ ファイルにプレフィックスを追加したり、元のファイルのバックアップ コピーを別のディレクトリに配置したりできます (ディレクトリが既に存在する場合)。
バックアップの「サフィックス」のアスタリスクは、ファイル名 (パスを含む - サブフォルダーがある場合は、最初にバックアップ ディレクトリに作成する必要があります) に置き換えられるようです。
% seq 5 > file
% sed -i'backups/*.bak' s/3/c/ file
% cat file
1
2
c
4
5
% cat backups/file.bak
1
2
3
4
5
%