分析如下:
一、Linux下的tar命令详解
1、tar -c:建立压缩档案
2、tar -x:解压
3、tar -t:查看内容
4、tar -r:向压缩归档文件末尾追加文件
5、tar -u:更新原压缩包中的文件
二、压缩
1、tar -cvf jpg.tar *.jpg// 将目录里所有jpg文件打包成jpg.tar
2、tar -czf jpg.tar.gz *.jpg// 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
3、tar -cjf jpg.tar.bz2 *.jpg// 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
4、tar -cZf jpg.tar.Z *.jpg// 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
5、rar a jpg.rar *.jpg// rar格式的压缩,需要先下载rar for linux
6、zip jpg.zip *.jpg// zip格式的压缩,需要先下载zip for linux
三、解压
1、tar -xvf file.tar// 解压 tar包
2、tar -xzvf file.tar.gz// 解压tar.gz
3、tar -xjvf file.tar.bz2// 解压 tar.bz2
4、tar -xZvf file.tar.Z// 解压tar.Z
5、unrar e file.rar// 解压rar
6、unzip file.zip// 解压zip
四、具体 *** 作方法:
1、如图看到的示例,用tar命令来打包这些文件以及目录。(文件目录以自己实际情况为准,这里用做参考用例)
2、如图所示,tar -cvf便是打包,包名可以自己定(要加.tar后缀名),这是打包一个bd1.txt文件。
3、打包多个文件就是用空格隔开文件名,这样即可以此来打包多个txt文件。
4、可用星号*跟后缀名来匹配指定某一类文件,比如TXT类文件。
5、用Tar命令打包文件到指定的目录文件夹里面可以在包前面加文件夹的路径,例打包到a文件夹里边了。
命令如下:
压缩当前文件夹下非[隐藏文件]的文件
压缩当前文件夹下[隐藏文件]排除两个[隐藏文件]夹"."和“..”
https://www.cnblogs.com/ysk123/p/9849865.html
去下载busybox的源码,在busybox-XXXX/coreutils/mkdir.c/* vi: set sw=4 ts=4: */
/*
* Mini mkdir implementation for busybox
*
* Copyright (C) 2001 Matt Kraai <kraai@alumni.carnegiemellon.edu>
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
/* BB_AUDIT SUSv3 compliant */
/* http://www.opengroup.org/onlinepubs/007904975/utilities/mkdir.html */
/* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org)
*
* Fixed broken permission setting when -p was usedespecially in
* conjunction with -m.
*/
/* Nov 28, 2006 Yoshinori Sato <ysato@users.sourceforge.jp>: Add SELinux Support.
*/
#include "libbb.h"
/* This is a NOFORK applet. Be very careful! */
#if ENABLE_FEATURE_MKDIR_LONG_OPTIONS
static const char mkdir_longopts[] ALIGN1 =
"mode\0"Required_argument "m"
"parents\0" No_argument "p"
#if ENABLE_SELINUX
"context\0" Required_argument "Z"
#endif
#endif
int mkdir_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE
int mkdir_main(int argc, char **argv)
{
mode_t mode = (mode_t)(-1)
int status = EXIT_SUCCESS
int flags = 0
unsigned opt
char *smode
#if ENABLE_SELINUX
security_context_t scontext
#endif
#if ENABLE_FEATURE_MKDIR_LONG_OPTIONS
applet_long_options = mkdir_longopts
#endif
opt = getopt32(argv, "m:p" USE_SELINUX("Z:"), &smode USE_SELINUX(,&scontext))
if (opt &1) {
mode = 0777
if (!bb_parse_mode(smode, &mode)) {
bb_error_msg_and_die("invalid mode '%s'", smode)
}
}
if (opt &2)
flags |= FILEUTILS_RECUR
#if ENABLE_SELINUX
if (opt &4) {
selinux_or_die()
setfscreatecon_or_die(scontext)
}
#endif
if (optind == argc) {
bb_show_usage()
}
argv += optind
do {
if (bb_make_directory(*argv, mode, flags)) {
status = EXIT_FAILURE
}
} while (*++argv)
return status
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)