拡張子の前に cp サフィックスを付けます。

拡張子の前に cp サフィックスを付けます。

ディレクトリとサブディレクトリの複数のファイルを別々のディレクトリにコピーする1行のソリューションを取得しようとしましたが、次のような結果が得られました。

find source/ -type f | xargs -I '{}' cp -a --backup=t '{}' destination/

ファイルをコピーして重複したファイル名を処理するだけではほとんどうまく機能しますが、cpコマンドのサフィックスを拡張子の前に置く方法があるかどうか疑問に思います。 2つのファイルの名前が同じでコピーすると、次の結果が表示されます。

file.txt
file.txt~1~

可能であれば、代わりにgetを使用したり、file~1~.txt他の区切り文字を使用したいと思います。file(1).txtfile-1.txt

拡張する前に、コマンドは区切りcp文字が一致するかどうかを確認しないため、混乱する可能性があり、その結果、次のような結果が発生します。file~1~~1~~1~.txtしかし、誰でも簡単な解決策があれば良いでしょう。これで、グローバルコマンドを介してバッチの名前変更を実行しlsます。vim!sh

関連情報