tar
Linux Command – tar ใช้ในการจัดเก็บรวบรวม file ข้อมูล
คำสั่ง
1. สร้าง archive file จาก file ข้อมูล
- option -c ระบุว่าสร้าง archive file ใหม่
- option -f ระบุว่าตัวแปรต่อไปคือชื่อ file archive
$ tar -cf archive.tar file1 file2
2. แสดงข้อมูลภายใน archive file
- option -t ใช้ในการแสดง list ข้อมูล
- option -v ระบุว่าแสดงข้อมูลแบบละเอียด
- option -f ระบุว่าตัวแปรต่อไปคือชื่อ file archive
$ tar -tvf archive.tar
3. แตก file ข้อมูลที่ archive
- option -x ระบุว่าทำการแตกข้อมูล file ออกมา
- option -f ระบุว่าตัวแปรต่อไปคือชื่อ file archive
$ tar -xf archive.tar
4. แตก file ข้อมูลที่ archive ที่มีการ zip
- option -x ระบุว่าทำการแตกข้อมูล file ออกมา
- option -z ระบุว่า file มีการ zip
- option -v ระบุว่าแสดงข้อมูลแบบละเอียด
- option -f ระบุว่าตัวแปรต่อไปคือชื่อ file archive
$ tar -xzvf archive.tar.gz
5. สร้าง archive file จาก directory
$ tar -cf archive.tar mydir/
6. สร้าง archive file แบบ zip จาก directory
$ tar -czf archive.tar.gz mydir/
7. แตก arhive file แบบ zip ไปยัง direcory ปัจจุบัน
$ tar -zxvf myfile.tar.gz
8. แตก archive file โดยระบุเฉพาะ file ข้างในที่ต้องการ
$ tar -xvf archive.tar documents/work/budget.doc
โครงสร้างคำสั่ง
tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append |
t --list | --test-label | u --update | x --extract --get [options] [pathname ...]
รายละเอียด
เป็นคำสั่งที่ใช้ในการจัดเก็บรวบรวม file ข้อมูล (archive) ในลักษณะการรวมหลายๆ file และ directory เป็น file เดียวชื่อว่า file.tar รวมถึงสามารถแตก file ข้อมูลกลับออกมาได้
Option
FUNCTION LETTERS Main operation mode: -A, --catenate, --concatenate append tar files to an archive -c, --create create a new archive -d, --diff, --compare find differences between archive and file system --delete delete from the archive (not on mag tapes!) -r, --append append files to the end of an archive -t, --list list the contents of an archive --test-label test the archive volume label and exit -u, --update only append files newer than copy in archive -x, --extract, --get extract files from an archive OTHER OPTIONS Operation modifiers: -[0-7][lmh] specify drive and density -a, --auto-compress use archive suffix to determine the compression program --acls Enable the POSIX ACLs support --no-acls Disable the POSIX ACLs support --add-file=FILE add given FILE to the archive (useful if its name starts with a dash) --anchored patterns match file name start --no-anchored patterns match after any '/' (default for exclusion) --atime-preserve preserve access times on dumped files, either by restoring the times after reading (METHOD='replace'; default) or by not setting the times in the first place (METHOD='system') --no-auto-compress do not use archive suffix to determine the compression program -b, --blocking-factor BLOCKS BLOCKS x 512 bytes per record -B, --read-full-records reblock as we read (for 4.2BSD pipes) --backup backup before removal, choose version CONTROL -C, --directory DIR change to directory DIR --check-device check device numbers when creating incremental archives (default) --no-check-device do not check device numbers when creating incremental archives --checkpoint display progress messages every NUMBERth record (default 10) --checkpoint-action=ACTION execute ACTION on each checkpoint --clamp-mtime only set time when the file is more recent than what was given with --mtime --delay-directory-restore delay setting modification times and permissions of extracted directories until the end of extraction --no-delay-directory-restore cancel the effect of --delay-directory-restore option --exclude=PATTERN exclude files, given as a PATTERN --exclude-backups exclude backup and lock files --exclude-caches exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself --exclude-caches-all exclude directories containing CACHEDIR.TAG --exclude-caches-under exclude everything under directories containing CACHEDIR.TAG --exclude-ignore=FILE read exclude patterns for each directory from FILE, if it exists --exclude-ignore-recursive=FILE read exclude patterns for each directory and its subdirectories from FILE, if it exists --exclude-tag=FILE exclude contents of directories containing FILE, except for FILE itself --exclude-tag-all=FILE exclude directories containing FILE --exclude-tag-under=FILE exclude everything under directories containing FILE --exclude-vcs exclude version control system directories --exclude-vcs-ignores read exclude patterns from the VCS ignore files -f, --file ARCHIVE use archive file or device ARCHIVE -F, --info-script, --new-volume-script NAME run script at end of each tape (implies -M) --force-local archive file is local even if it has a colon --full-time print file time to its full resolution -g, --listed-incremental FILE handle new GNU-format incremental backup -G, --incremental handle old GNU-format incremental backup --group=NAME force NAME as group for added files -h, --dereference follow symlinks; archive and dump the files they point to -H, --format FORMAT create archive of the given formatFORMAT is one of the following: --format=gnu GNU tar 1.13.x format --format=oldgnu GNU format as per tar <= 1.12 --format=pax POSIX 1003.1-2001 (pax) format --format=posix same as pax --format=ustar POSIX 1003.1-1988 (ustar) format --format=v7 old V7 tar format --hard-dereference follow hard links; archive and dump the files they refer to -i, --ignore-zeros ignore zeroed blocks in archive (means EOF) -I, --use-compress-program PROG filter through PROG (must accept -d) --ignore-case ignore case --no-ignore-case case sensitive matching (default) --ignore-command-error ignore exit codes of children --no-ignore-command-error treat non-zero exit codes of children as error --ignore-failed-read do not exit with nonzero on unreadable files --index-file=FILE send verbose output to FILE -j, --bzip2 -J, --xz -k, --keep-old-files don't replace existing files when extracting, treat them as errors -K, --starting-file MEMBER-NAME begin at member MEMBER-NAME when reading the archive --keep-directory-symlink preserve existing symlinks to directories when extracting --keep-newer-files don't replace existing files that are newer than their archive copies -l, --check-links print a message if not all links are dumped -L, --tape-length NUMBER change tape after writing NUMBER x 1024 bytes --level=NUMBER dump level for created listed-incremental archive --lzip --lzma --lzop -m, --touch don't extract file modified time -M, --multi-volume create/list/extract multi-volume archive --mode=CHANGES force (symbolic) mode CHANGES for added files --mtime=DATE-OR-FILE set mtime for added files from DATE-OR-FILE -n, --seek archive is seekable -N, --newer, --after-date DATE-OR-FILE only store files newer than DATE-OR-FILE --newer-mtime=DATE compare date and time when data changed only --null -T reads null-terminated names, disable -C --no-null disable the effect of the previous --null option --numeric-owner always use numbers for user/group names -O, --to-stdout extract files to standard output --occurrence process only the NUMBERth occurrence of each file in the archive; this option is valid only in conjunction with one of the subcommands --delete, --diff, --extract or --list and when a list of files is given either on the command line or via the -T option; NUMBER defaults to 1 --old-archive, --portability same as --format=v7 --one-file-system stay in local file system when creating archive --one-top-level create a subdirectory to avoid having loose files extracted --overwrite overwrite existing files when extracting --overwrite-dir overwrite metadata of existing directories when extracting (default) --no-overwrite-dir preserve metadata of existing directories --owner=NAME force NAME as owner for added files -p, --preserve-permissions, --same-permissions extract information about file permissions (default for superuser) -P, --absolute-names don't strip leading '/'s from file names --pax-option=keyword[[:]=value][,keyword[[:]=value]]... control pax keywords --posix same as --format=posix --preserve same as both -p and -s --quote-chars=STRING additionally quote characters from STRING --no-quote-chars=STRING disable quoting for characters from STRING --quoting-style=STYLE set name quoting style; see below for valid STYLE values -R, --block-number show block number within archive with each message --record-size=NUMBER NUMBER of bytes per record, multiple of 512 --recursion recurse into directories (default) --no-recursion avoid descending automatically in directories --recursive-unlink empty hierarchies prior to extracting directory --remove-files remove files after adding them to the archive --restrict disable use of some potentially harmful options --rmt-command=COMMAND use given rmt COMMAND instead of rmt --rsh-command=COMMAND use remote COMMAND instead of rsh -s, --preserve-order, --same-order member arguments are listed in the same order as the files in the archive -S, --sparse handle sparse files efficiently --same-owner try extracting files with the same ownership as exists in the archive (default for superuser) --no-same-owner extract files as yourself (default for ordinary users) --no-same-permissions apply the user's umask when extracting permissions from the archive (default for ordinary users) --no-seek archive is not seekable --selinux Enable the SELinux context support --no-selinux Disable the SELinux context support --show-defaults show tar defaults --show-omitted-dirs when listing or extracting, list each directory that does not match search criteria --show-snapshot-field-ranges show valid ranges for snapshot-file fields --show-transformed-names, --show-stored-names show file or archive names after transformation --skip-old-files don't replace existing files when extracting, silently skip over them --sort=ORDER directory sorting order: none (default), name or inodedirectory sorting order: none (default) or name --sparse-version=MAJOR[.MINOR] set version of the sparse format to use (implies --sparse) --strip-components=NUMBER strip NUMBER leading components from file names on extraction --suffix=STRING backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX) -T, --files-from FILE get names to extract or create from FILE --to-command=COMMAND pipe extracted files to another program --totals print total bytes after processing the archive; with an argument - print total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also accepted --transform, --xform EXPRESSION use sed replace EXPRESSION to transform file names -U, --unlink-first remove each file prior to extracting over it --unquote unquote input file or member names (default) --no-unquote do not unquote input file or member names --utc print file modification times in UTC -v, --verbose verbosely list files processed -V, --label TEXT create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name --volno-file=FILE use/update the volume number in FILE -w, --interactive, --confirmation ask for confirmation for every action -W, --verify attempt to verify the archive after writing it --warning=KEYWORD warning control --wildcards use wildcards (default for exclusion) --wildcards-match-slash wildcards match '/' (default for exclusion) --no-wildcards-match-slash wildcards do not match '/' --no-wildcards verbatim string matching -X, --exclude-from FILE exclude patterns listed in FILE --xattrs Enable extended attributes support --xattrs-exclude=MASK specify the exclude pattern for xattr keys --xattrs-include=MASK specify the include pattern for xattr keys --no-xattrs Disable extended attributes support -z, --gzip, --gunzip --ungzip -Z, --compress, --uncompress
กลุ่มคำสั่ง
tar(5), symlink(7), rmt(8)
Reference:
Author: Suphakit Annoppornchai
Credit: https://saixiii.com