tarball
이름이 있습니다 test.tar
. 먼저 다음을 실행하여 이름을 만듭니다.
echo start > 1
tar -cf test.tar 1
그런 다음 업데이트하세요.
echo end > 1
tar -uf test.tar 1
이제 이 tar 아카이브의 파일 목록을 얻으면 다음과 같습니다.
$ tar -tx test.tar
그것은 나에게 다음을 제공합니다:
1
1
이 파일의 내용을 보려고 하면:
$ tar -xOf test.tar
start
end
마지막으로 추출하고 싶을 때 :
$ tar -xf test.tar 1
$ cat 1
end
이전 버전을 추출하는 방법이 있나요 1
? (포함된 것 start
).
또 다른 것은 이 파일을 삭제하는 것입니다. 매개변수를 사용하면 --delete
아카이브에서 해당 이름을 가진 모든 파일이 삭제됩니다. 기존 것만 삭제하거나 새 것만 삭제하려면 어떻게 해야 하나요?
답변1
~에서여기:
--occurrence[=number]
--delete
이 옵션은 > 하위 명령 중 하나 와 함께 사용하거나--diff
명령 줄이나 옵션을 통해 파일 목록이 제공될 때 사용할 수 있습니다 .--extract
--list
-T
이 옵션은 tar가 명명된 각 파일의 첫 번째 항목만 처리하도록 지시합니다. 숫자의 기본값은 1이므로
tar -x -f archive.tar --occurrence filename
archive.tar' 멤버의 첫 번째 발생이
filename' from >
추출되고 아카이브 끝까지 스캔하지 않고 종료됩니다.
따라서 귀하의 경우 이전 버전을 추출하려면 다음을 사용하십시오.
tar -xf test.tar --occurrence=1 1
삭제하려면 다음을 실행하세요.
tar --delete -f test.tar --occurrence=1 1
두 버전을 모두 추출하는 또 다른 해결 방법은 간단히 --backup
스위치를 사용하는 것입니다.
tar -xf test.tar --backup
다음과 같은 파일을 추출합니다.
1
1~
이것은 1~
오래되었습니다. 버전이 세 개 이상인 경우 --occurrence
대신 스위치를 사용하세요.
-w
대화형 모드를 사용할 수도 있습니다 tar
.
tar -xf test.tar -w
이번에는 tar
각 작업에 대한 메시지가 표시되며 추출하려는 첫 번째 또는 마지막 버전을 선택할 수 있습니다 y/n
.