权利权力的游戏第7集百度云七季云盘

1230人阅读
Linux操作系统基础(1)
Linux操作系统开发(5)
1、dd命令详解
1)中文man手册dd的解释
&dd - 转换和拷贝文件
摘要使用方法:
& & & &dd & &[--help] & [--version] & [if=file] & [of=file] & & & [ibs=bytes] & [obs=bytes] & [bs=bytes] & [cbs=bytes] & & & [skip=blocks] & & &[seek=blocks] & & &[count=blocks]
& & & &[conv={ascii, ebcdic, ibm, &block, &unblock, &lcase, ucase, swab, noerror, notrunc, sync}]
& & & &当进行非强制的转换的时候,使用指定的输入和输出块大小拷贝文件 & & & (默认是从标准输入到标准输出。)
& & & &它每次从输入读取指定大小的一个块(默认是512字节)。
如果使用 bs=bytes 选项,并且没有转换,除了指定 sync,noerror,或 notrunc之外,那么dd将把全部读到的数据(可以比请求读的少)写到独立的输出块去。这个输出块的长度和读到的数据完全一样,除非指定使用sync(同步)转换,那样的话,数据结尾处将追加NULL字符(或空格,见下)。
& & & &其他情况下,输入的时候每次读一个块,然后处理,并将输出结果收集起来,最后写到指定大小的数据块中去。最终的输出块可能会比指定的大小短一些。
& & & &数字值选项(以字节或块为单位)后面可以跟一个乘数:
& & & &k=1024,b=512,w=2,c=1(w和c是GNU扩展语法。最好别使用w,因为在system & V中,它表示2,在4.2 &BSD中,它 表示4)。两个或更多的数值表达式可以通过“x”乘起来。
& & & &GEU & fileutils &4.0并且允许在数据块大小的叙述中使用
& & & &下列乘法后缀(用bs=,cbs=,obs=):M=1048576,G=,
& & & &同理可得T,P,E,Z,Y。D后缀表示数值是以 十进制表示的:kD=1000 MD=1000000 GD=等等。
& & & &(注意,在ls、df、du命令中,M等标记的大小是由环境变量确定的,而在DD中,它的值是固定的。)
& & & &if=file: &从 file 中读而不是标准输入。
& & & &of=file: 写到 & &file & & 里去而不是标准输出。除非指定conv=notrunc & &,否则, & &dd & &将把 & file截为O字节(或由 seek= 选项指定的大小)
& & & &ibs=bytes: 一次读 bytes 字节。默认是512。
& & & &obs=bytes:一次写 bytes 字节。默认是512。
& & & &bs=bytes:一次读和写 bytes 字节。这将覆盖 &ibs &和 &obs设定的值(并且,设定 &bs &不等于同时将 ibs 和obs 设为同一个值,至少在 只使用 sync, noerror 或notrunc转换时是这样的。因为bs规定,每个输入块都应作为单独的数据块拷贝到输出,而不把较短的块组合到一起)。
& & & &cbs=bytes: 为block 转换和unblock转换指定转换块的大小。
& & & &skip=blocks在拷贝之前,跳过输入文件的前blocks块,每块大小为 ibs-byte 字节。
& & & &seek=blocks 在拷贝之前,跳过输出文件的前blocks块,每块大小为 obs-byte 字节。
& & & &count=blocks 只拷贝输入文件的前 & blocks &块(每块的大小为ibs-byte字节),而不是全部内容,直到文件末尾。
& & & &conv=转换&[,&转换&]...& 将文件按 转换参数指定的方式转换(在“,”两边没有空格)
& & & & & & & 转换方式包括:
& & & & & & & ascii &将EBCDIC转换成ascii。
& & & & & & & ebcdic 将ascii转换成ebcdic。
& & & & & & & ibm & &将ascii转换成alternative ebcdic。
& & & & & & & block &每一行输入,无论长短,输出都是 &cbs 字节,并且其中的“换行”(NEWLINE,即c中的'0)用空格替换。如有必要,行尾会填充空格。
& & & & & & & unblock &用“换行”替换每个输入块(cbs 字节大小)末尾的空格。
& & & & & & & lcase &将大写字母转换成小写。
& & & & & & & ucase &将小写字母转换成大写。
& & & & & & & swab & 交换每对输入字节。如果读入的字节数是奇数,最后一个字节只是简单的复制到输出(因为没有能跟它交换的 字节了)(POSIX1003.26,PASC翻译号和4号)。
& & & & & & & noerror 发生读错误时,继续进行。
& & & & & & & notrunc 不截断输出文件。
& & & & & & & sync & 用0填充到每个输入块的末尾,使其大小为ibs 字节。
GNU标准选项
& & & &--help 将用法信息打印到标准输出,并成功退出。
& & & --version & & & 将版本信息打印到标准输出,并成功退出。
& & & &-- & & 结束选项列表。
& & & &LANG, LC_ALL, LC_CTYPE和LC_MESSAGES具有其通常含义。
& & & &POSIX 1003.2
& & & &磁带机通常不能接受任意大小的数据块,当最后一个数据片段不能充满整个块时,dd将出现I/O错误。用'dd if=myfile &of=/dev/mytape &conv=sync', 就可以使全部内容存到磁带上。当然,这样做,把文件从磁带上读回时回产生一个稍大些的文件,因为其尾部填充了一些NUL(空字符)。
& & & &本手册页描述了fileutils-4.0软件包中的 & & & & & & dd
& & & &命令。其他版本的dd会与此稍有不同。有关更正和补充可以发帖到中国linux&论坛-man手册版。报告程序中的错误,请给fileutils-bugs2gnu.ai.wit.edu 发邮件
2、cp命令详解
cp命令中文man手册
NAME & & & cp - 复制文件和目录
& & & &cp [选项] 文件路径
& & & &cp [选项] 文件...目录
& & & &POSIX 选项: [-fipRr]
& & & &GNU & & &参数(最短形式): & & &[-abdfilprsuvxPR] & & &[-S & & &SUFFIX] & & &[-V &{numbered,existing,simple}] [--sparse=WHEN] [--help] [--version] [--]
& & & &cp & 复制文件(或者目录等). & & 可以使用这个命令复制一个文件到一个指定的目的地,或者复制任意多个文件到一个目的目录目录.
& & & &如果所给的参数只有两个文件名.它把前一个文件复制到后一个文件上.
& & & &如果最后一个命令参数为一个已经存在的目录名,cp会将每一个源文件复制到那个目录下(维持原文件名).
& & & &如果最后一个参数不是文件名,目录名,和给出多于两个非选项参数,是错误的.
& & & &(因而:如果/b已经存在,那么'cp -r &/a &/b'会复制/a到/b而成为/b/a.而复制/a/x到/b而成为/b/a/x。
但如果/b事先不存在,它会把/a复制为/b而复制/a/x到/b而成为/b/x.)
& & & &所创建的文件和/或目录的模式和原始的文件的模式是一样的,然后用用户umask值修改(除非使用了-p选项),(但在递归方式复制目录时,新建目录会临时地获得他们的最终模式Ored,连同S_IRWXU(0700),以便进程能够读、写、查找这些新建的目录.
& & & &复制文件到其自身时它什么事情都不做(除了可能会生成一条错误信息以外).复制到一个现存的不同文件时,系统调用函数`open(path,O_WRONLY|O_TRUNC)'打开目的文件.当复制到一个新文件时,系统调用函数`open(path,O_WRONLY|O_CREAT,mode)'创建该文件.如果这操作失败,该文件存在,和给出了-f选项,cp试图先删除该现存文件,如果删除成功则把它当做一个新文件处理.
POSIX 选项
& & & &POSIX 识别四个半选项:
& & & &-f & & 如果需要,删除已存在的目的文件.(如前所述.)
& & & &-i & & 提示是否覆盖现有普通目标文件。(在标准出错上显示问题,从标准输入读取答案.只有明确确认了才复制文件.)
& & & &-p & & 保留原文件的所有者、组、权限(包括 & &setuid & &和 & &setgid & & 位),上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错,则setuid和setgid位被清空。
& & & & & & & (要不然源文件和副本的上次访问时间显然是不同的,因为复制操作就是对源文件的访问.)
& & & &-R & & 递归复制目录,如果对象不是普通文件或目录那么做相应正确处理,(因此,一个FIFO或者特殊文件在复制后仍然是一个FIFO型或者相应特殊文件。)
& & & &-r & & 递归复制目录,如果对象不是普通文件或目录那么做一些未声明处理.(因此,我们允许并鼓励用 &-r &选项做 -R & 的同义词.不过那些愚蠢的特征,象那些在GNU版本的 cp 出现的(见下文)也可以用.)
& & & &通常,读写文件的方式都是一样的.例外情况见下面的 --sparse 选项.
& & & &缺省情况下,`cp'并不复制目录(参见下文 -r 选项说明).
& & & &cp &通常不会复制文件到自身,但有以下例外: &如果参数 --force --backup 与 源文件一起给出,并且与目的文件并且指向一个普通文件,cp 将生成一个备份文件,不是普通的就是编了号的,就象通常的方法那样声明.在你仅仅想对已有的文件进行备份, 而又不想修改它的时候很有用.
& & & &-a, --archive
& & & & & & & 复制时,尽可能保持文件的结构和属性.(但不保持目录 结构)等同于 -dpR。
& & & &-d, --no-dereference
& & & & & & & 复制符号链接作为符号链接而不是复制它指向的文件,
& & & & & & & 并且保护在副本中原文件之间的硬链接.
& & & &-f, --force
& & & & & & & 删除存在的目标文件。 (较:原译文缺下面的部分)
& & & &-i, --interactive
& & & & & & & 无论是否覆盖现存文件都作提示。
& & & &-l, --link
& & & & & & & 制作硬链接代替非目录拷贝。
& & & &-p, --preserve
& & & & & & & 保持原始文件的所有者,组,许可,和时间表属性。
& & & &-P, --parents
& & & & & & & 一个斜杠和指定的源文件名构成目的文件。最后送给cp 的参数必须是一个已存在的目录的名字。
例如, 下面这个命令:
& & & & & & & cp --parents a/b/c existing_dir &复制文件 `a/b/c' 到 texisting_dir(现有的目录)/a/b/c',建立任何缺少的中间目录。
& & & &-r & & 递归地复制目录,复制任何非目录和非符号链接(那是,FIFOs和特别文件)好象他们是常规的文件一样看待.这意味着尝试读出每个源文件的数据,和把它写到目的地上.因而,用这个选项,cp'可能彻底地终止,当不确定地读一个FIFO或者/dev/tty时,(这是一个缺陷.它意味着如果你不知道在这棵树(目录)中有什么要复制的时候,你不得不避开-r并使用-R打开一个未知的设备文件,比如说一台扫描仪,会有未知的效果发生在硬件上)
& & & &-R, --recursive
& & & & & & & 递归地复制目录,保留非目录(参见上面的 -r ).
& & & &--sparse=WHEN
& & & & & & & 一个稀疏file'包容`holes'-占用0字节,它不占用任何物理块;系统把他们作为0调用read'来读.由于许多二进制文件包容许多连续的0字节,这样能保存相当的磁盘空间并且加快速度.省缺情况下,cp通过自然的启发方式发现在源文件里holes并且使相关 的输出文件稀疏.
& & & & & & & WHEN 值能够是下面中的一个:
& & & & & & & auto & 默认的行为:如果输入文件是稀疏的,输出文件也是稀疏的.
& & & & & & & always 总是使输出文件稀疏.当输入文件所在的文件系统不支 持稀疏文件的时候,这是有用的,但是输出文件所在的文件系统需要(支持稀疏文件).
& & & & & & & never &从不使输出文件稀疏.如果你找到一个需要此选项的应用程序,让我们知道.
& & & &-s, --symbolic-link
& & & & & & & 生成符号链接代替非目录拷贝.所有的源文件名必须是绝对的(由`/'开始),除非目的文件是在当前目录.这选项仅仅在系统不支持符号链接时引起一个错误消息.
& & & &-u, --update
& & & & & & & 如果存在的目的地有相同的,或者更新的修改时间,不 复制非目录(文件).
& & & &-v, --verbose
& & & & & & & 在复制前印出文件名.
& & & &-x, --one-file-system
& & & & & & & 跳过来自不同文件系统的子目录.
GNU 备份选项
& & & &GNU & & &版本程序象 cp, &mv, ln, install 和patch会在覆盖,改变,或者破坏(文件)前生成一个备份文件. 那个文件由-b选项给出.他们的由-V选项命名.一般情况下备份文件名是源文件名加上后缀,这个后缀由-S 指定.
& & & &-b, --backup & & & &生成关于覆盖和删除的备份.
& & & &-S SUFFIX, --suffix=SUFFIX & 加入 SUFFIX(后缀) 到每个备份文件. &如果不指定,使用 SIMPLE_BACKUP_SUFFIX 环境变量的值.如果连 SIMPLE_BACKUP_SUFFIX 都没有设置,省缺是`~'.
& & & &-V METHOD, --version-control=METHOD
& & & & & & & 指定如何命名备份文件. METHOD &能够是`numbered' (or `t'), `existing' &(or `nil'), or `never' (or `simple'). &如果不指定,使用 &VERSION_CONTROL 环境变量的值.如果VERSION_CONTROL 也没有设置,省缺备份文件类型是
& & & & & & & `existing'. &这选项相应Emacs变量 `version-control'. 有效的METHODs 是(接受唯一的缩写):t, numbered 总是产生编号的备份。
& & & & & & & nil, existing
& & & & & & & & & & &Make &numbered &backups &of files that already have them, simple
& & & & & & & & & & &backups of the others.
& & & & & & & never, simple
& & & & & & & & & & &总作简单的备份.
GNU 标准选项
& & & &--help 印出用法并退出.
& & & &--version & & 印出版本信息并退出.
& & & &-- & & 结束选项列表.
环境(参数)
& & & &变量LANG,LC_ALL,LC_COLLATE,LC_CTYPE和LC_MESSAGES有通常意义.
& & & &对于GNU版本,变量SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制备份
& & & &文件命名.与上面的描述一样.
适用到 & &POSIX 1003.2
注意 & & 这份 cp 的描述和FILEUTils-4.0中找到的是一样的;另外的版本也许有些微的差别.修正和新增邮到aeb@cwi.nl.报告缺陷到fileutils-
& & & &bugs@gnu.ai.mit.edu.
3、通过对cp与dd命令man手册的学习我们看到。
1)cp命令拷贝过程中是整个文件的拷贝,操作对象最小单位是文件。dd拷贝可以以字节拷贝并且可以设置对数据拷贝的大小。
2)cp命令可以拷贝文件夹,其实最终还是文件的拷贝,dd不可以拷贝文件夹。
3)dd还可以完成文件在拷贝过程中的转换(字符的转换,字符的填充等),cp不可以,cp会改变文件本身的属性,比如读写权限,但文件内容不会改变。
4)dd拷贝是通过扇区完成的,可以完成磁盘数据的完整拷贝。比如硬盘数据备份 & dd if=/dev/sda of=/dev/sdh & &可以将sda中的数据完整的拷贝到sdh中,扇区数据完全相同。cp不可以。
5)源码中dd和cp的实现是不一样的,dd在效率上要高于cp,dd使用文件系统接口去实现的就是open等函数,cp不是(还没研究好,大家可以去看一下)。
4)关于cp命令与dd命令的效率问题。大多数人觉得是dd命令的效率高,这个我测试了一下,测试效果如下:(仅供参考,欢迎讨论)
1、以上分别测试dd和cp拷贝小文件和大文件的时间
小文件(小于1k)看不出来,dd和cp的时间都很短,看不出来区别。
大文件(大于150Mb)看到时间cp要比dd效率高,cp时间为0.208s+0.000s=0.208s ,dd时间为0.812s+0.048s=0.860s(实际测试结果)
可以再测试下更大的文件是不是有优势!
2、深入研究需要看源码,以及测试源码的效率。(欢迎讨论delong.)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:16429次
排名:千里之外
原创:13篇
(1)(3)(9)(3)Linux&命令之dd:转换和复制文件
dd是一个和上的命令,主要功能为转换和复制文件。
在Unix上,硬件的设备驱动(如)和特殊(如和)就像普通文件一样,出现在文件系统中;dd也可以读取(有时也能写入)这些文件。这样,dd也可以用在备份硬件的、取得一定数量的随机数据等任务中。dd程序也可以在复制时处理数据,例如转换、或在与编码间互换。
dd命令可用于各种用途。
数据转换&[]
dd可以在文件、设备、分区和卷之间复制数据。数据可以从其中任何地方输入或输出;但输出到分区时有重要差异。此外在传输过程中,数据可以用conv选项修改以适应介质。
如果最后一个块有意外长度,试图使用复制整个磁盘可能会忽略掉它;然而dd却可能成功。源和目标磁盘应该具有相同的大小。
不同情况的dd格式
dd if=/dev/sr0
of=myCD.iso bs=2048 conv=noerror,sync
从CD-ROM中创建。
dd if=/dev/sda2
of=/dev/sdb2 bs=4096 conv=noerror
一个到另一个。
dd if=/dev/ad0
of=/dev/ad1 bs=1M conv=noerror
克隆硬盘“ad0”到“ad1”。
noerror选项意味着如果发生错误,程序也将继续运行。sync选项表示填充每个块到指定字节。
备份和恢复主引导记录&[]
可以修复主引导记录。主引导记录可以转移到文件,或从中转移出来。
要复制软盘的前两个扇区:
dd if=/dev/fd0 of=MBRboot.img bs=512 count=2
要创建整个的镜像(包括):
dd if=/dev/sda of=MBR.img bs=512 count=1
要创建仅含引导代码的镜像(不包括):
dd if=/dev/sda of=MBR_boot.img bs=446 count=1
数据修改&[]
dd可以原地修改数据。
用空字节覆盖文件的前512个字节:
dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notrunc
转换选项notrunc意味着不缩减输出文件,也就是说,如果输出文件已经存在,只改变指定的字节,然后退出,并保留输出文件的剩余部分。没有这个选项,dd将创建一个512字节长的文件。
在不同的分区中复制磁盘分区到磁盘映像文件中:
dd if=/dev/sdb2 of=partition.image bs=4096 conv=noerror
磁盘擦除&[]
出于安全方面的考虑,有时需要擦除丢弃的磁盘。
检查驱动器上是否有数据,并将其输出到标准输出:
dd if=/dev/sda
用零擦除磁盘:
dd if=/dev/zero of=/dev/sda bs=4k conv=notrunc
bs=4k选项使dd一次读取或写入4。在较现代的系统中,这可以使整个进程大大加快。注意用随机数据填充磁盘总是比用零慢的多,因为随机数据必须先由CPU生成。在大多数较现代的磁盘中,用零擦除会使其中的数据永久丢失。
用零擦除磁盘会使它的数据无法被软件恢复。需要注意的是,由于,数据仍然可能通过特殊的实验室技术恢复。
程序可作为执行相同任务的高级工具。
数据恢复&[]
1984年,GNU&dd开启了(OSS)数据、文件、驱动器和分区的历史。dd进程一次处理一个块,它的算法只是在用户界面显示运行状态。1999年10月,一个C语言的程序发布了。它的算法一次能处理两个块。但改进dd_rescue的数据恢复算法、2003年的shell脚本作者现在推荐。它是一个发布于2004年的C++程序,与大多数的Linux发行版一起发行。在开源软件中,GNU&ddrescue有最先进的块大小变换算法。(ddrescue和dd_rescue尽管名字相近,但却是不同的程序。然而,Linux发行版却将dd_rescue包装为“”,将GNU
ddrescue包装为“”)。
GNU&ddrescue既稳定又安全。下面是一个未经测试的用法,使用了ddrescue31个选项中的3个:
ddrescue -n /dev/old_disk /dev/new_disk # 快速扫描无错误区域,然后停止
ddrescue -d -r1 /dev/old_disk /dev/new_disk # 工作时直接访问磁盘的错误区域
另一个开源程序savehd7使用更复杂的算法,但它需要安装自己的语言解释器。
驱动器性能基准测试&[]
对驱动器进行基准测试,使用1024字节块分析连续读取和写入的性能:
dd if=/dev/zero bs=1024 count=1000000 of=file_1GB
dd if=file_1GB of=/dev/null bs=64k
用随机数据生成文件&[]
用100个随机字节生成文件:
dd if=/dev/random of=myrandom bs=100 count=1
将文件转换为大写&[]
将文件转换为大写:
dd if=filename of=filename1 conv=ucase
创建任意大小的空文件&[]
创建1GiB的,或增加现有文件的大小:
dd if=/dev/zero of=mytestfile.out bs=1 count=0 seek=1G
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。3792人阅读
&dd是Linux上的一个常用的命令。 例如:dd if=/1.txt of=/tmp/2.txt&&&&&(其中, if代表input file;of代表output file, 命令的结果就是将根目录下的1.txt的内容拷贝到/tmp目录的的2.txt。)
&&&& 当然,如果只是用dd做这样的事情显然大材小用了,因为cp可以干同样的事情,而且更简单。
&&&&& 下面就介绍一下dd的&高级&应用:
&(一)直接读写闪存&&& 在嵌入式系统中,经常需要测试系统文件读写的性能,如果想绕过文件系统(文件系统一般都有自己的cache),直接测试闪存驱动的性能,最简单的方法就是dd。&&& 一般,闪存(NAND)会有几个分区,每个分区对应/dev/mtd*的一个结点:
&写操作&dd if=/dev/urandom of=/dev/mtd1 bs=4096 count=1000(上面这个命令就是从/dev/urandom中拷贝文件到mtd1这个分区上,每次读写的数据量是4096个字节,拷贝1000次,因此总的数据量就4M.)&读操作&dd if=/dev/mtd1 of=/dev/null bs=4096 count=1000&(上面这个命令就是从分区mtd1中拷贝文件到空设备/dev/null上,每次读写的数据量是4096个字节,拷贝1000次,因此总的数据量就4M.)&dd执行完毕后会输出的吞吐率。&(二)DirectIO
&&& 在有些系统上,没有mtd节点或者不能直接操作存储设别,如果想测试文件读写性能,如何消除文件系统的影响呢?&&& dd命令有一组参数oflag和iflag, 控制源文件和目标文件的读写方式为direct IO,即读或写文件时越过操作系统的读写buffer。如果指定oflag=direct,nonblock,写文件时忽略cache的影响;而如果指定iflag=direct,nonblock,读文件时忽略cache的影响&&&& 下面就是一组实测数据,从中可以看出cache对最终性能的影响。
&&&& flag 中除了可以指定direct和nonblock,还可以指定其他的值,具体参见: &&&& 需要注意的是有些的平台可能只支持一部分flag.&(三) 拷贝屏幕
&&& 利用dd可以实现截屏,假设屏幕对应的设备节点/dev/fb0,屏幕大小是600&800,屏幕像素的格式是rgb565(每个像素对应两个字节),则命令如下:&&&&&&&&&&& dd if=/dev/fb0 of=/tmp/1.dat bs=600 count=1600
&&&&反之,也可以利用dd,直接写屏幕,例如下面的命令将随机渲染屏幕:&&&&&&&&&&& dd if=/dev/urandom of=/dev/fb0 bs=600 count=1600
&&& 清空屏幕:
&&&&&&&&&&& dd if=/dev/zero of=/dev/fb0 bs=600 count=1600
&&& /dev/zero文件代表一个永远输出0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。
(四) 串口读写
&&& dd还可以写串口,假设串口节点为/dev/ttyS0, 下面的命令将文件写入串口中:&&&&&&&&& dd if=1.txt of=/dev/ttyS0
&&& 下面是dd命令的调用流程:
&&& 上图中的f_op数据结构是在open一个文件或设备时赋值的,其中的read, write等指向真正的操作该文件的函数。通过这个流程图,我们可以看出该设备或文件的驱动实现了标准的读写函数,就可以利用dd进行读写。
转载自()作者邮箱()
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:76334次
排名:千里之外
原创:14篇
转载:28篇
评论:10条
(1)(1)(1)(1)(2)(2)(5)(2)(1)(1)(3)(8)(2)(1)(1)(1)(8)(1)在linux中install命令和cp命令的区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
在linux中install命令和cp命令的区别
上传于|0|0|文档简介
&&在linux中install命令和cp命令的区别
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 权力的游戏7集百度云 的文章

 

随机推荐