何も上書きせずに明示的にファイルを移動する方法

何も上書きせずに明示的にファイルを移動する方法

何も上書きせずにファイルを移動できるコマンドやオプションはありますか?

議論のために、このファイルの名前をfoo.rarとして指定します。

-n が機能し、ファイルを上書きしません。しかし、ファイルがあれば移動しません。システムエラー(例:ディスク容量不足)を除いてファイルを移動したいと思います。

-bも動作します。 -bの問題は、バックアップファイルがある場合、-bが新しいバックアップファイルでバックアップファイルを削除することです。

それでは、この質問にいくつかの文脈を追加するためのfoo.rarの例を見てみましょう。 /homeでfoo.rarを検索してみましょう。この名前の10の異なるファイルが見つかりました。私がしたいのは、次の3つのコマンドを実行することです。

mkdir /tmp/foo_files
find /home -iname "foo.rar" -exec wanted_mv_command {} /tmp/foo_files \;
mv /tmp/foo_files ~/

~/foo_files に foo.rar, foo.rar.1, foo.rar.2 ... foo.rar.9 を含めたいと思います。

どのモードを使用しても構いません。たとえば、foo.rarの代わりにfoo.#.rarを使用できます。#>私は2つだけが欲しいです。ファイルの元の名前が何であるかを示し、ファイルの異なるバージョンが表示されます。

ベストアンサー1

GNU mvを使っているのでできる適切な--backupオプションを使用してください。番号付きのバックアップをオンにします。

 mv --backup=numbered file1 file2 your_dir

-Sオプションでサフィックスを変更できます。

例は次のとおりです。

$ mv --backup=numbered aa/foo bb/foo cc/foo .
$ ls
aa  bb  cc  foo  foo.~1~  foo.~2~

おすすめ記事