mvコマンド-ファイルを上書きしない


8

mvファイルを作成し、重複を上書きしたくない。-b私は多くを持っている場合があるスイッチは、単一のバックアップファイルを作成します。

mvマニュアルページによると:

--suffixまたはSIMPLE_BACKUP_SUFFIXで設定しない限り、バックアップサフィックスは「〜」です。バージョン管理方法は、--backupオプションまたはVERSION_CONTROL環境変数を使用して選択できます。値は次のとおりです。

どれも、オフ
(--backupが指定されている場合でも)バックアップを作成しません
tは、番号が
番号付きバックアップ作る
nilを、既存の
番号付きバックアップが存在する場合、番号、シンプルそう
単純で、決して
常にシンプルなバックアップを作成しません

「existing、nil」オプションを使用したいと思いますが、それを呼び出す方法がわかりません。

私のコマンドは:

mv $src $dest

「既存のnil」オプションを実装するにはどうすればよいですか?


この回答は、cp代わりに使用することについて良い回答を持っていますmvunix.stackexchange.com/a/9902
Connor Leech

回答:


6

existingまたはnil(またはその他のオプション)を有効にするには、それらを--backupオプションの値として渡します。

mv --backup=existing "$src" "$dest"
mv --backup=nil "$src" "$dest"

これはあなたが望むことをしないことに注意してください:

$ mkdir foo bar
$ cp blah/* foo
$ cp blah/* bar
$ mv --backup=nil bar/* foo/* -t blah
mv: will not overwrite just-created ‘blah/a.jpg’ with ‘foo/a.jpg’
mv: will not overwrite just-created ‘blah/b.ogv’ with ‘foo/b.ogv’
mv: will not overwrite just-created ‘blah/cd ef.JpG’ with ‘foo/cd ef.JpG’

あなたは実際にnumbered/を望みますt

$ mv --backup=numbered bar/* foo/* -t blah
$ ls blah 
a.jpg  a.jpg.~1~  a.jpg.~2~  b.ogv  b.ogv.~1~  b.ogv.~2~  cd ef.JpG  cd ef.JpG.~1~  cd ef.JpG.~2~

それは本当に不可解なようです。バックアップオプションとは何ですか?
Connor Leech、2015年

1
@ConnorLeechはバックアップ設定を制御しますか?
muru、2015年


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.