linux文件(目录)操作命令:chown、chgrp、cmp、dd、du

chown命令

chown是一条在Unix系统中用于设置文件所有者和文件关联组的命令。需要超级用户的权限才能执行此命令。只有超级用户和属于组的文件所有者才能变更文件关联组。非特权用户(非超级用户)如需要设置关联组可能需要使用chgrp命令。

使用方法:

chownrootvarrunhttpdpidnbsp;把varrunhttpdpid的所有者设置root。

chownrob:developersstracelognbsp;把stracelog的所有者设置为rob,文件的关联组设置为developers。

chown:52homenbsp;把home的关联组设置为52关联组ID),不改变所有者。

chownRusbasenbsp;把base以及其目录下的所有的文件的所有者设置为us。R选项将递归的修改该目录层次结构中的所有文件的所有者和组用户。

chgrp命令

chgrp是一条在Unix系统中用于设置文件所归属的组的命令。与chown命令不同,chgrp允许普通用户改变文件所属的组,只要该用户是该组的一员。

使用方法:

调用chgrp的语法为:chgrp组名目标[目标2]组名是文件即将关联的组。目标[目标2]是需要改变组的文件或目录的列表。

范例:

lsltestfilerwrrnbsp;nbsp;unixguynbsp;staffnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;545Nov424nbsp;tttchgrpsystemtestfilelsltttrwrrnbsp;nbsp;unixguynbsp;systemnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;545Nov424nbsp;tttchgrpstaffunbsp;将u的属组更改为staff。

chgrphRstaffu将u及其子目录下所有文件的属组更改为staff。

上述命令将文件testfile所属的组从staff改成了system。(执行命令者必须属于staff组。)

cmp命令

功能说明:比较两个文件是否有差异。当相互比较的两个文件完全先同时,则该指令不会显示任何信息。若发现有所差异,预设会表示每一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为,则cmp指令会从标准输入设备读取数据。

语法:cmp[c[v][ilt;字符数目gt;][help][第一个文件][第二个文件]

参数: c或–printchars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。 ilt;字符数目gt;或–ignoreinitial=lt;字符数目gt; 指定一个数目。 l或–verbose 标示出所有不一样的地方。 s或–quiet或–silent 不显示错误信息。 v或–version 显示版本信息。 –help 在线帮助。

示例:

、cmpprogobakprogo

比较progobak和progo。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:progobakprogodiffer:char4linenbsp;如果显示消息cmp:EOFonprogobak,则progo的第一部分与progobak相同,但在progo中还有其他数据。

2、cmplprojobakprogo

这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。例如,如果第五个字节在progobak中是八进制,在progo中是4,则cmp显示:54nbsp;54

3、cmpsprogcbakprogcnbsp;如果文件相同,则给出值,如果不同,则给出值,或者如果发生错误,则给出值2。

du可以带一个参数,即指定一个路径来工作;如果没有指定,则使用当前目录。SUS指定了du有以下这些选项:

a,将当前目录下每个文件(不含目录)作为一个条目显示。H,计算命令行中指定链接对象的磁盘使用情况。k,将大小除以24字节,而非52字节显示。L,计算任意链接对象的使用情况。s,仅汇报当前目录总计的磁盘使用情况,不显示每一个文件。x,仅遍历指定路径所在设备上的文件与目录。h,把磁盘使用情况的大小加上单位后缀,显示为一个用户更容易理解的形式。

如:KB单位的目录总大小:dusknbsp;5234nbsp;directoryOnenbsp;856548directoryTwonbsp;

更易读的目录总大小格式Byte、KB、MB、GB、TB、PB:dushnbsp;49MdirectoryOnenbsp;8GdirectoryTwonbsp;

当前目录下包含隐藏文件,子目录与文件的磁盘使用情况(从小到大排序):dusk[]|sortnnbsp;

当前目录下包含隐藏文件,子目录与文件的磁盘使用情况(从大到小排序):dusk[]|sortnrnbsp;

显示深度为的目录大小及其总和:dudchnbsp;

nbsp;

dd命令

dd是一个UNIx和类Unix系统上的命令,主要功能为转换和复制文件。

在Unix上,硬件的设备驱动(如硬盘)和特殊设备文件(如devzero和devurandom)就像普通文件一样,出现在文件系统中;只要在各自的驱动程序中实现了对应的功能,dd也可以读取自和或写入到这些文件。这样,dd也可以用在备份硬件的引导扇区、取得一定数量的随机数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在ASCII与EBCDIC编码间互换。dd的命令行语句与其他的Unix程序不同,因为它的命令行选项格式为选项=值,而不是更标准的选项值或选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(inputfile,输入文件)和of(outputfile,输出文件)改变。块大小:块是衡量一次读取、写入和转换字节的单位。命令行选项可以为输入读取(ibs)和输出写入(obs)指定一个不同的块大小,尽管块大小(bs)选项会覆盖ibs和obs选项。输入和输出的默认块大小为52字节(传统的磁盘块及POSIX规定的块大小)复制的count选项、读取的skip选项和写入的seek选项都是以块为单位。转换操作也受转换块大小(cbs)影响。

在dd的一些用途中,块大小可能会影响表现。例如,当转换硬盘中数据时,较小的块大小通常会导致更多的字节被转换。发出许多小块的读取是一种开销的浪费,且可能会对执行性能有负面影响。较大的块大小可能会提高复制速度。但是,由于要复制的字节量是由bs×count给出的,因此不可能一次复制素数字节,除非使用一两个糟糕的选项bs=Ncount=(消耗内存)或bs=count=N(大量读请求开销)。替代程序(见下文)允许指定字节,而不是块。在用作网络传输时,根据使用的网络协议,块大小可能会与包大小冲突。提供给块大小的值会被解释成十进制整数,也可以加入后缀指定倍数。后缀w表示2倍,b表示52倍,k表示24倍,M表示24×24倍,G表示24×24×24倍,等等。另外,在块大小和计数参数中,一些实现也可以使用x表示乘运算。例如,块大小bs=2x8x8b表示2×8×8×52=47456字节,也就是一张44KiB软盘的确切大小。

数据转换:dd可以在文件、设备、分区和卷之间复制数据。数据可以从其中任何地方输入或输出;但输出到分区时有重要差异。此外在传输过程中,数据可以用conv选项修改以适应介质。如果最后一个块有意外长度,试图使用cp复制整个磁盘可能会忽略掉它;然而dd却可能成功。源和目标磁盘应该具有相同的大小。

不同情况的dd格式:ddif=devsrof=myCDisobs=248conv=noerrorsync从CDROM中创建ISO磁盘映像。ddif=devsda2of=devsdb2bs=496conv=noerror克隆一个分区到另一个。ddif=devadof=devadbs=Mconv=noerror克隆硬盘ad到ad。noerror选项意味着如果发生错误,程序也将继续运行。sync选项表示填充每个块到指定字节。

备份和恢复主引导记录:可以修复主引导记录。主引导记录可以转移到文件,或从中转移出来。

要复制软盘的前两个扇区:ddif=devfdof=MBRbootimgbs=52count=2nbsp;

要创建整个x86主引导的镜像(包括MSDOS分区表和MBR魔法字节):

ddif=devsdaof=MBRimgbs=52count=

要创建仅含主引导记录引导代码的镜像(不包括分区表和开机所需的魔法字节):ddif=devsdaof=MBR_bootimgbs=446count=nbsp;

数据修改:dd可以原地修改数据。

用空字节覆盖文件的前52个字节:ddif=devzeroof=pathtofilebs=52count=conv=notruncnbsp;转换选项notrunc意味着不缩减输出文件,也就是说,如果输出文件已经存在,只改变指定的字节,然后退出,并保留输出文件的剩余部分。没有这个选项,dd将创建一个52字节长的文件。

在不同的分区中复制磁盘分区到磁盘镜像文件中:ddif=devsdb2of=partitionimagebs=496conv=noerrornbsp;

磁盘擦除:主条目:数据擦除出于安全方面的考虑,有时需要擦除丢弃的磁盘。检查驱动器上是否有数据,并将其输出到标准输出:

ddif=devsdanbsp;nbsp;

用零擦除磁盘:ddif=devzeroof=devsdabs=4knbsp;dd进程一次处理一个块,它的算法只是在用户界面显示运行状态。

nbsp;

驱动器性能基准测试:对驱动器进行基准测试(通常是单线程),使用24字节块分析连续系统读取和写入的性能:

ddif=devzerobs=24count=of=file_GBddif=file_GBof=devnullbs=24

nbsp;

用随机数据生成文件:使用内核随机数驱动,用个随机字节生成文件:ddif=devurandomof=myrandombs=count=nbsp;

nbsp;

将文件转换为大写:ddif=filenameof=filenameconv=ucase

nbsp;

创建任意大小的空文件:创建GiB的稀疏文件,或增加现有文件的大小:ddif=devzeroof=mytestfileoutbs=count=seek=Gnbsp;

nbsp;

du命令

dudiskusage的缩写,磁盘使用情况是一个估计某个特定目录或文件在文件系统上磁盘使用情况的标准Unix程序。默认情况下,单一UNIX系统规定,du显示当前目录每个文件与目录的被分配磁盘空间的情况。链接文件将会显示其本身大小而非其链接对象;目录则会显示其内容的大小。由于du只反映磁盘分配情况而非实际文件大小,所以如果文件被删除后磁盘未被释放,其显示的数字会与df报告的数字有所不同。

linux文件(目录)操作命令:chown、chgrp、cmp、dd、du

相关文章:

你感兴趣的文章:

标签云: