빈 타르 아카이브를 얻는 방법? 파일에 포함되어있는 RPM을 만들고 있습니다

모든 것이 .spec 파일에 포함되어있는 RPM을 만들고 있습니다 (:-). rpmbuild에는 “소스”파일이 필요하므로 빈 tar 파일을 만들려고했습니다. 그러나 파일 이름을 지정하지 않으면 tar는 다음과 같이 불평합니다.

tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.

진정으로 비어있는 tar 파일을 어떻게 만듭니 까?



답변

GNU 및 BSD tar가 다음을 사용하여 빈 아카이브를 작성하도록 할 수 있습니다.

tar -cf tarfilename.tar -T /dev/null


답변

BSD : tar cvf empty.tar --from-file /dev/null

GNU (리눅스) : tar cvf empty.tar --files-from /dev/null

솔라리스 : tar cvf empty.tar -I /dev/null


답변

빈 tar 파일은 10240 NUL 바이트가 들어있는 파일입니다. 따라서 빈 tar 파일을 만들려면 필요하지 tar않지만 대신 다음 중 하나를 사용할 수 있습니다.

$ head --bytes=10240 /dev/zero > empty.tar
$ truncate --size=10240 empty.tar
$ fallocate --length=10240 empty.tar
$ dd if=/dev/zero bs=10240 count=1 iflag=fullblock > empty.tar
$ dd if=/dev/zero bs=1 count=10240 > empty.tar


답변

단일 파일을 보관 한 다음 보관에서 파일을 삭제하여 빈 보관 파일을 만들 수있었습니다.

tar cf empty.tar somefile                   # creates archive
tar --delete -f empty.tar somefile          # remove the file
tar tf empty.tar                            # list contents of archive

이것은 나를 위해 작동합니다.


답변