분명한 사실을 말하기 전에 백업 옵션이 파일을 백업한다는 것을 알고 있습니다.
하지만 문제는 이 cp
명령이 일반적으로 파일을 백업한다는 것입니다. 파일 복사본이 백업이라고 말할 수도 있습니다.
더 정확하게 내 질문은 다음과 같습니다. -b
이 옵션은 cp
명령이 아직 수행하지 않는 작업을 수행합니까?
cp(1) 매뉴얼 페이지에서는 --backup
이 옵션에 대해 다음과 같이 설명합니다.
각 기존 대상 파일 백업
이 정의는 그다지 유용하지 않으며 기본적으로 "백업할 백업 옵션"이라고 말합니다. -b
무엇이 추가되었는지 는 나와 있지 않습니다.cp
-b
새 파일 이름 끝에 접미사를 추가하는 방법을 알고 있습니다 . 하지만 그 밖의 기능은 무엇입니까? 아니면 그게 다야? -b
백업은 cp
파일 이름 끝에 무언가를 추가하는 명령입니까? 감사해요
-b
PS 일상 업무에서 백업을 할 때 주로 이 기능을 사용 하시나요 ? 아니면 그냥 고집하시나요 -a
?
답변1
이미 존재하는 각 대상 파일의 백업 복사본을 생성합니다. 덮어쓰여 손실될 수 있는 콘텐츠.
$ mkdir foo; cd foo
$ echo hello > hello.txt
$ echo world > world.txt
$ cp -b hello.txt world.txt
$ ls
hello.txt world.txt~ world.txt
$ cat world.txt
hello
$ cat world.txt~
world
이것이 world.txt~
생성되는 백업 파일입니다. 자세히 살펴보면 백업 파일이 실제로 이름이 변경된 원본 파일임을 알 수 있습니다. (즉, inode 번호는 동일하게 유지되며 파일에 대한 권한도 동일하게 유지됩니다.)
답변2
동일한(GNU coreutils) cp 맨페이지에서:
--backup[=CONTROL]
make a backup of each existing destination file
CONTROL
따라서 자연스럽게 이 문서에서 정의를 찾습니다.
The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values:
none, off
never make backups (even if --backup is given)
numbered, t
make numbered backups
existing, nil
numbered if numbered backups exist, simple otherwise
simple, never
always make simple backups
하지만 그 밖의 기능은 무엇입니까?
아니요.
PS 일상 업무에서 백업을 수행할 때 일반적으로 -b를 사용합니까? 아니면 그냥 -a를 사용하시나요?
음. -b
실제로 데이터를 백업하기 위한 끔찍한 솔루션처럼 들립니다. 백업이 아닌 상황에서 데이터 손상을 방지하는 것이 더 중요합니다. 그래서, 아니, 난 그랬어안 돼요사용된 -b
.
백업의 경우 실제로 상황에 따라 다르지만 개인/소규모 파일 시스템의 경우 파일 시스템 스냅샷(ZFS를 통하거나 아래의 얇은 LVM을 사용하여)이 정말 잘 작동합니다. 오프디바이스 백업의 경우 솔직히 말해서 주로 rsync
전체 백업에 사용됩니다. 이는 디스크 외부 증분 백업이 필요한 상황에서는 duplicity
괜찮습니다 .