다른 tar 파일의 파일 목록에서 tar 파일을 작성하려면 어떻게해야합니까?


0

업데이트해야 할 파일의 복사본으로 tar 파일을 만드는 프로세스가 있습니다.

새 파일로 덮어 쓰기 전에 기존 파일을 백업하고 싶습니다.

난 노력 했어

tar cf backup.tar -T `tar tf updated.tar`

작동하지 않았습니다. tar tf의 출력을 파일로 파이프하면 -T 매개 변수로 사용합니다.

tar tf updated.tar > list; tar cf backup.tar -T list

그러나 하나의 명령으로 이것을 달성 할 수 있어야합니다. 가능합니까?

답변:


3

stdin 을 입력 파일로 지정 하십시오 (예 :

타르 tf updated.tar | tar cf backup.tar -T-


1

-T 옵션은 구체적으로 목록이 아닌 파일을 찾고 있습니다. 첫 번째 시도는 목록을 -T로 전달하므로 작동하지 않을 수 있습니다. 나는 다음과 같은 것을 시도 할 것이다 :

타르 tf updated.tar | xargs tar cf backup.tar

1
드문 경우지만 실패 할 수 있습니다. 허용되는 최대 명령 줄 인수 수가 제한됩니다. 참조하십시오 getconf ARG_MAX.

좋은 지적은 ... 그래서 H. Dirk Schmitt의 대답이 더 낫습니다.
John

@ H.-DirkSchmitt : xargs일반적으로 여러 호출에서 명령을 분할하여이를 처리합니다. (두 번째 tar c는 첫 번째 출력을 덮어 쓰기 때문에 여기에서 예상대로 작동하지 않습니다 .)
grawity

-1

나는이 명령을 사용한다 :

tar cf backup.tar `tar tf updated.tar`
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.