mv 명령-파일을 덮어 쓰지 마십시오


8

mv중복 파일을 덮어 쓰고 싶지 않습니다. -b나는 많은이있을 수있는 반면 스위치는 하나의 백업 파일을 만듭니다.

mv매뉴얼 페이지 에 따르면 :

--suffix 또는 SIMPLE_BACKUP_SUFFIX로 설정하지 않으면 백업 접미사는 '~'입니다. 버전 제어 방법은 --backup 옵션 또는 VERSION_CONTROL 환경 변수를 통해 선택할 수 있습니다. 값은 다음과 같습니다.

아무도 오프
(--backup가 주어진 경우에도) 백업을 결코
t는, 번호
번호 백업하기
전무, 기존을
번호 백업이있는 경우 번호가 간단하고, 그렇지 않으면
간단하게, 결코
항상 간단한 백업을하지 않습니다

나는 '기존의 nil'옵션을 사용하고 싶다고 생각하지만 어떻게 전화 해야하는지 알 수 없습니다.

내 명령이 다음과 같은 경우

mv $src $dest

'기존의 nil'옵션을 어떻게 구현할 수 있습니까?


이 답변 사용에 대한 좋은 반응이 cp대신 mv: unix.stackexchange.com/a/9902
코너 거머리

답변:


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~

정말 비밀스러운 것 같습니다. 백업 옵션은 무엇입니까?
코너 거머리

1
백업 설정을 제어하기 위해 @ConnorLeech?
muru

0
mv --backup=existing $src $dest

또는

mv --backup=nil $src $dest

많은 시도 후에 구문이 작동하지만 nil 옵션이 작동하지 않았습니다. 그러나 --backup = t는 수행합니다. 감사!
BeMy Friend

0
mv --backup=t "$src/$file" "$dest"

자세한 내용은 다음을 참조하십시오man mv
Geek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.