{"id":61,"date":"2012-07-13T15:03:11","date_gmt":"2012-07-13T07:03:11","guid":{"rendered":"http:\/\/www.datarelab.com\/blog\/?p=61"},"modified":"2012-07-13T15:03:11","modified_gmt":"2012-07-13T07:03:11","slug":"tar%20%e6%96%87%e4%bb%b6%e6%a0%bc%e5%bc%8f","status":"publish","type":"post","link":"https:\/\/www.datarelab.com\/blog\/Technical_literature\/61.html","title":{"rendered":"tar \u6587\u4ef6\u683c\u5f0f"},"content":{"rendered":"<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the unix tar program is an archiver program which stores files in a single\r\narchive without compression.\r\noffset              count type   description\r\n@section the standard format\r\na @dfn{tar tape} or file contains a series of records.  each record\r\ncontains @code{recordsize} bytes.  although this format may be\r\nthought of as being on magnetic tape, other media are often used.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">each file archived is represented by a header record which describes\r\nthe file, followed by zero or more records which give the contents\r\nof the file.  at the end of the archive file there may be a record\r\nfilled with binary zeros as an end-of-file marker.  a reasonable\r\nsystem should write a record of zeros at the end, but must not\r\nassume that such a record exists when reading an archive.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the records may be @dfn{blocked} for physical i\/o operations.  each\r\nblock of @var{n} records (where @var{n} is set by the @samp{-b}\r\noption to @code{tar}) is written with a single @code{write()}\r\noperation.  on magnetic tapes, the result of such a write is a\r\nsingle tape record.  when writing an archive, the last block of\r\nrecords should be written at the full size, with records after the\r\nzero record containing all zeroes.  when reading an archive, a\r\nreasonable system should properly handle an archive whose last block\r\nis shorter than the rest, or which contains garbage records after a\r\nzero record.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the header record is defined in c as follows:<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@example\r\n\/*\r\n * standard archive format - standard tar - ustar\r\n *\/\r\n#define  recordsize  512\r\n#define  namsiz      100\r\n#define  tunmlen      32\r\n#define  tgnmlen      32<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">union record @{\r\n    char        charptr[recordsize];\r\n    struct header @{\r\n        char    name[namsiz];\r\n        char    mode[8];\r\n        char    uid[8];\r\n        char    gid[8];\r\n        char    size[12];\r\n        char    mtime[12];\r\n        char    chksum[8];\r\n        char    linkflag;\r\n        char    linkname[namsiz];\r\n        char    magic[8];\r\n        char    uname[tunmlen];\r\n        char    gname[tgnmlen];\r\n        char    devmajor[8];\r\n        char    devminor[8];\r\n    @} header;\r\n@};<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* the checksum field is filled with this while the checksum is computed. *\/\r\n#define    chkblanks    \"        \"        \/* 8 blanks, no null *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* the magic field is filled with this if uname and gname are valid. *\/\r\n#define    tmagic    \"ustar  \"        \/* 7 chars and a null *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* the magic field is filled with this if this is a gnu format dump entry *\/\r\n#define    gnumagic  \"gnutar \"        \/* 7 chars and a null *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* the linkflag defines the type of file *\/\r\n#define  lf_oldnormal '\\0'       \/* normal disk file, unix compatible *\/\r\n#define  lf_normal    '0'        \/* normal disk file *\/\r\n#define  lf_link      '1'        \/* link to previously dumped file *\/\r\n#define  lf_symlink   '2'        \/* symbolic link *\/\r\n#define  lf_chr       '3'        \/* character special file *\/\r\n#define  lf_blk       '4'        \/* block special file *\/\r\n#define  lf_dir       '5'        \/* directory *\/\r\n#define  lf_fifo      '6'        \/* fifo special file *\/\r\n#define  lf_contig    '7'        \/* contiguous file *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* further link types may be defined later. *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* bits used in the mode field - values in octal *\/\r\n#define  tsuid    04000        \/* set uid on execution *\/\r\n#define  tsgid    02000        \/* set gid on execution *\/\r\n#define  tsvtx    01000        \/* save text (sticky bit) *\/<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\/* file permissions *\/\r\n#define  turead   00400        \/* read by owner *\/\r\n#define  tuwrite  00200        \/* write by owner *\/\r\n#define  tuexec   00100        \/* execute\/search by owner *\/\r\n#define  tgread   00040        \/* read by group *\/\r\n#define  tgwrite  00020        \/* write by group *\/\r\n#define  tgexec   00010        \/* execute\/search by group *\/\r\n#define  toread   00004        \/* read by other *\/\r\n#define  towrite  00002        \/* write by other *\/\r\n#define  toexec   00001        \/* execute\/search by other *\/\r\n@end example<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">all characters in header records are represented by using 8-bit\r\ncharacters in the local variant of ascii.  each field within the\r\nstructure is contiguous; that is, there is no padding used within\r\nthe structure.  each character on the archive medium is stored\r\ncontiguously.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">bytes representing the contents of files (after the header record of\r\neach file) are not translated in any way and are not constrained to\r\nrepresent characters in any character set.  the @code{tar} format\r\ndoes not distinguish text files from binary files, and no\r\ntranslation of file contents is performed.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{name}, @code{linkname}, @code{magic}, @code{uname}, and\r\n@code{gname} are null-terminated character strings.  all other\r\nfileds are zero-filled octal numbers in ascii.  each numeric field\r\nof width @var{w} contains @var{w}@minus{} 2 digits, a space, and a null,\r\nexcept @code{size}, and @code{mtime}, which do not contain the\r\ntrailing null.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{name} field is the pathname of the file, with directory\r\nnames (if any) preceding the file name, separated by slashes.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{mode} field provides nine bits specifying file permissions\r\nand three bits to specify the set uid, set gid, and save text\r\n(``stick'') modes.  values for these bits are defined above.  when\r\nspecial permissions are required to create a file with a given mode,\r\nand the user restoring files from the archive does not hold such\r\npermissions, the mode bit(s) specifying those special permissions\r\nare ignored.  modes which are not supported by the operating system\r\nrestoring files from the archive will be ignored.  unsupported modes\r\nshould be faked up when creating or updating an archive; e.g. the\r\ngroup permission could be copied from the @code{other} permission.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{uid} and @code{gid} fields are the numeric user and group\r\nid of the file owners, respectively.  if the operating system does\r\nnot support numeric user or group ids, these fields should be\r\nignored.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{size} field is the size of the file in bytes; linked files\r\nare archived with this field specified as zero.\r\n@xref{extraction options}; in particular the @samp{-g} option.@refill<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{mtime} field is the modification time of the file at the\r\ntime it was archived.  it is the ascii representation of the octal\r\nvalue of the last time the file was modified, represented as an\r\ninteger number of seconds since january 1, 1970, 00:00 coordinated\r\nuniversal time.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{chksum} field is the ascii representation of the octal\r\nvalue of the simple sum of all bytes in the header record.  each\r\n8-bit byte in the header is added to an unsigned integer,\r\ninitialized to zero, the precision of which shall be no less than\r\nseventeen bits.  when calculating the checksum, the @code{chksum}\r\nfield is treated as if it were all blanks.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{typeflag} field specifies the type of file archived.  if a\r\nparticular implementation does not recognize or permit the specified\r\ntype, the file will be extracted as if it were a regular file.  as\r\nthis action occurs, @code{tar} issues a warning to the standard\r\nerror.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@table @code\r\n@item lf_normal\r\n@itemx lf_oldnormal\r\nthese represent a regular file.  in order to be compatible with\r\nolder versions of @code{tar}, a @code{typeflag} value of\r\n@code{lf_oldnormal} should be silently recognized as a regular\r\nfile.  new archives should be created using @code{lf_normal}.  also,\r\nfor backward compatibility, @code{tar} treats a regular file whose\r\nname ends with a slash as a directory.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_link\r\nthis represents a file linked to another file, of any type,\r\npreviously archived.  such files are identified in unix by each file\r\nhaving the same device and inode number.  the linked-to\r\nname is specified in the @code{linkname} field with a trailing null.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_symlink\r\nthis represents a symbolic link to another file.  the linked-to\r\nname is specified in the @code{linkname} field with a trailing null.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_chr\r\n@itemx lf_blk\r\nthese represent character special files and block special files\r\nrespectively.  in this case the @code{devmajor} and @code{devminor}\r\nfields will contain the major and minor device numbers\r\nrespectively.  operating systems may map the device specifications\r\nto their own local specification, or may ignore the entry.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_dir\r\nthis specifies a directory or sub-directory.  the directory name in\r\nthe @code{name} field should end with a slash.  on systems where\r\ndisk allocation is performed on a directory basis the @code{size}\r\nfield will contain the maximum number of bytes (which may be rounded\r\nto the nearest disk block allocation unit) which the directory may\r\nhold.  a @code{size} field of zero indicates no such limiting.\r\nsystems which do not support limiting in this manner should ignore\r\nthe @code{size} field.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_fifo\r\nthis specifies a fifo special file.  note that the archiving of a\r\nfifo file archives the existence of this file and not its contents.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_contig\r\nthis specifies a contiguous file, which is the same as a normal\r\nfile except that, in operating systems which support it,\r\nall its space is allocated contiguously on the disk.  operating\r\nsystems which do not allow contiguous allocation should silently treat\r\nthis type as a normal file.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item 'a' @dots{}\r\n@itemx 'z'\r\nthese are reserved for custom implementations.  some of these are\r\nused in the gnu modified format, as described below.\r\n@end table<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">other values are reserved for specification in future revisions of\r\nthe p1003 standard, and should not be used by any @code{tar} program.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">the @code{magic} field indicates that this archive was output in the\r\np1003 archive format.  if this field contains @code{tmagic}, the\r\n@code{uname} and @code{gname} fields will contain the ascii\r\nrepresentation of the owner and group of the file respectively.  if\r\nfound, the user and group id represented by these names will be used\r\nrather than the values within the @code{uid} and @code{gid} fields.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@section gnu extensions to the archive format\r\nthe gnu format uses additional file types to describe new types of\r\nfiles in an archive.  these are listed below.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@table @code\r\n@item lf_dumpdir\r\n@itemx 'd'\r\nthis represents a directory and a list of files created by the\r\n@samp{-g} option.  the @code{size} field gives the total size of the\r\nassociated list of files.  each filename is preceded by either a @code{'y'}\r\n(the file should be in this archive) or an @code{'n'} (the file is a\r\ndirectory, or is not stored in the archive).  each filename is\r\nterminated by a null.  there is an additional null after the last\r\nfilename.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_multivol\r\n@itemx 'm'\r\nthis represents a file continued from another volume of a\r\nmulti-volume archive created with the @samp{-m} option.  the original\r\ntype of the file is not given here.  the @code{size} field gives the\r\nmaximum size of this piece of the file (assuming the volume does not\r\nend before the file is written out).  the @code{offset} field gives\r\nthe offset from the beginning of the file where this part of the\r\nfile begins.  thus @code{size} plus @code{offset} should equal the\r\noriginal size of the file.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@item lf_volhdr\r\n@itemx 'v'\r\nthis file type is used to mark the volume header that was given with\r\nthe @samp{-v} option when the archive was created.  the @code{name}\r\nfield contains the @code{name} given after the @samp{-v} option.\r\nthe @code{size} field is zero.  only the first file in each volume\r\nof an archive should have this type.<\/pre>\n<pre style=\"line-height:normal;widows:2;text-transform:none;font-variant:normal;font-style:normal;text-indent:0px;letter-spacing:normal;orphans:2;color:#000000;font-weight:normal;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">@end table\r\nextension:\r\noccurences:\r\nprograms:\r\nreference:\r\nsee also:\r\nvalidation:\r\noffset              count type   description\r\n0000h                 256 byte   other header info ?\r\n0100h                   6 char   id='ustar',0\r\nextension:tar\r\noccurences:pc, unix\r\nprograms:tar<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>the unix tar program is an archiver program which store [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[107,108],"class_list":["post-61","post","type-post","status-publish","format-standard","hentry","category-Technical_literature","tag-tar","tag-108"],"views":1294,"_links":{"self":[{"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/posts\/61","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/comments?post=61"}],"version-history":[{"count":0,"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/posts\/61\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/media?parent=61"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/categories?post=61"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.datarelab.com\/blog\/wp-json\/wp\/v2\/tags?post=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}