关于Linux的 cp、mov、ls是什么意思呢?

关于Linux的 cp、mov、ls是什么意思呢?,第1张

cp:复制文件目录

语 法:cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录] [目的目录]

补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。

参 数:

-a或--archive 此参数的效果和同时指定"-dpR"参数相同。

-b或--backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。

-d或--no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。

-f或--force 强行复制文件或目录,不论目标文件或目录是否已存在。

-i或--interactive 覆盖既有文件之前先询问用户。

-l或--link 对源文件建立硬连接,而非复制文件。

-p或--preserve 保留源文件或目录的属性。

-P或--parents 保留源文件或目录的路径。

-r 递归处理,将指定目录下的文件与子目录一并处理。

-R或--recursive 递归处理,将指定目录下的所有文件与子目录一并处理。

-s或--symbolic-link 对源文件建立符号连接,而非复制文件。

-S<备份字尾字符串>或--suffix=<备份字尾字符串> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号"~"。

-u或--update 使用这项参数后只会在源文件的更改时间较目标文件更新时或是 名称相互对应的目标文件并不存在,才复制文件。

-v或--verbose 显示指令执行过程。

-V<备份方式>或--version-control=<备份方式> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用"-S"参数变更,当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字串。

-x或--one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不予复制。

--help 在线帮助。

--sparse=<使用时机> 设置保存稀疏文件的时机。

--version 显示版本信息。

mov:列出目录内容

功能说明:列出目录内容。

语 法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本样式>][-T <跳格字数>][-w <每列字符数>][--block-size=<区块大小>][--color=<使用时机>][--format=<列表格式>][--full-time][--help][--indicator-style=<标注样式>][--quoting-style=<引号样式>][--show-control-chars][--sort=<排序方式>][--time=<时间戳记>][--version][文件或目录...]

补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。

参 数:

-1 每列仅显示一个文件或目录名称。

-a或--all 下所有文件和目录。

-A或--almost-all 显示所有文件和目录,但不显示现行目录和上层目录。

-b或--escape 显示脱离字符。

-B或--ignore-backups 忽略备份文件和目录。

-c 以更改时间排序,显示文件和目录。

-C 以又上至下,从左到右的直行方式显示文件和目录名称。

-d或--directory 显示目录名称而非其内容。

-D或--dired 用Emacs的模式产生文件和目录列表。

-f 此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。

-F或--classify 在执行文件,目录,Socket,符号连接,管道名称后面,各自加上"*","/","=","@","|"号。

-g 次参数将忽略不予处理。

-G或--no-group 不显示群组名称。

-h或--human-readable 用"K","M","G"来显示文件和目录的大小。

-H或--si 此参数的效果和指定"-h"参数类似,但计算单位是1000Bytes而非1024Bytes。

-i或--inode 显示文件和目录的inode编号。

-I<范本样式>或--ignore=<范本样式> 不显示符合范本样式的文件或目录名称。

-k或--kilobytes 此参数的效果和指定"block-size=1024"参数相同。

-l 使用详细格式列表。

-L或--dereference 如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。

-m 用","号区隔每个文件和目录的名称。

-n或--numeric-uid-gid 以用户识别码和群组识别码替代其名称。

-N或--literal 直接列出文件和目录名称,包括控制字符。

-o 此参数的效果和指定"-l" 参数类似,但不列出群组名称或识别码。

-p或--file-type 此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*"号。

-q或--hide-control-chars 用"?"号取代控制字符,列出文件和目录名称。

-Q或--quote-name 把文件和目录名称以""号标示起来。

-r或--reverse 反向排序。

-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-s或--size 显示文件和目录的大小,以区块为单位。

-S 用文件和目录的大小排序。

-t 用文件和目录的更改时间排序。

-T<跳格字符>或--tabsize=<跳格字数> 设置跳格字符所对应的空白字符数。

-u 以最后存取时间排序,显示文件和目录。

-U 列出文件和目录名称时不予排序。

-v 文件和目录的名称列表以版本进行排序。

-w<每列字符数>或--width=<每列字符数> 设置每列的最大字符数。

-x 以从左到右,由上至下的横列方式显示文件和目录名称。

-X 以文件和目录的最后一个扩展名排序。

--block-size=<区块大小> 指定存放文件的区块大小。

--color=<列表格式> 培植文件和目录的列表格式。

--full-time 列出完整的日期与时间。

--help 在线帮助。

--indicator-style=<标注样式> 在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。

--quoting-syte=<引号样式> 把文件和目录名称以指定的引号样式标示起来。

--show-control-chars 在文件和目录列表时,使用控制字符。

--sort=<排序方式> 配置文件和目录列表的排序方式。

--time=<时间戳记> 用指定的时间戳记取代更改时间。

--version 显示版本信息。

mov没见过。

1、linux和windows的代码编写是不一样的,linux上的汇编风格是at&t风格,而windows上的汇编风格是intel风格。 其中的一个区别是intel 风格是关于源 *** 作数和目的 *** 作数的。以第一个为例

//windows上的写法

mov eax, data4

//linux上的写法

movl data4, eax

所以,你使用的哪个平台你得闹明白。

2、如果是汇编代码,直接用标识符就好,还是不同的风格问题,如果按你写的立即数模式。

//windows上的写法

mov eax, -1000

//linux上的写法

movl $-1000, eax

在linux的at&t汇编风格中,它这个立即数是必须要加上$ 表示一个常量。 这个也是为什么你在C语言中一般不能使用$来做为标识符的一个原因哦。

建议:查一下intel风格和at&t风格的汇编区别点。问题都很简单,为了更好的帮助你,我上传了一份,详细介绍intel汇编语言程序设计的电子书,中文版的,希望能帮到你!

1.立即数送寄存器或主存

MOV

reg/mem

,

im

mov

al

,

4

al←4,字节传送

mov

cx

,

0ffh

cx←00ffh,字传送

mov

si

,

200h

si←0200h,字传送

mov

byte

ptr

[si]

,

0ah

byte

ptr

说明是字节 *** 作

mov

word

ptr

[si+2

],

0bh

word

ptr

说明是字 *** 作

#

注意立即数是字节量还是字量

#

明确指令是字节 *** 作还是字 *** 作

2.寄存器送(段)寄存器或主存

MOV

reg/mem/seg

,

reg;

mov

ax

,

bx

ax←bx,字传送

mov

ah

,

al

ah←al,字节传送

mov

ds

,

ax

ds←ax,字传送

mov

[bx]

,

al

[bx]←al,字节传送

3.主存送(段)寄存器

MOV

reg/seg

,

mem;

mov

al

,

[bx]

mov

dx

,

[bp]

dx←ss:[bp]

mov

es

,

[si]

es←ds:[si]

#

不存在存储器向存储器的传送指令

4.段寄存器送寄存器或主存

MOV

reg/mem

,

seg;

mov

si

,

ds

mov

ax

,

es

ax←es

mov

ds

,

ax

ds←ax←es

#

对段寄存器的 *** 作有一些限制MOV指令传送功能:

1.两个 *** 作数的类型不一致

–-----例如源 *** 作数是字节,而目的 *** 作数是字;或相反

绝大多数双 *** 作数指令,除非特别说明,目的 *** 作数与源 *** 作数必须类型一致,否则为非法指令

MOV

AL

,

050AH;非法指令:050Ah为字,而AL为字节

寄存器有明确的字节或字类型,有寄存器参与的指令其 *** 作数类型就是寄存器的类型

对于存储器单元与立即数同时作为 *** 作数的情况,必须显式指明;

byte

ptr

指示字节类型

word

ptr

指示字类型。

2.两个 *** 作数不能都是存储器

–------传送指令很灵活,但主存之间的直接传送却不允许

8086指令系统不允许两个 *** 作数都是存储单元(除串 *** 作指令),要实现这种传送,可通过寄存器间接实现

mov

ax

,

buffer1;ax←buffer1(将buffer1内容送ax)

mov

buffer2

,

ax;buffer2←ax;这里buffer1和buffer2是两个字变量、;实际表示直接寻址方式

3.段寄存器的 *** 作有一些限制

–----段寄存器属专用寄存器,对他们的 *** 作能力有限

不允许立即数传送给段寄存器

MOV

DS,100H;非法指令:立即数不能传送段寄存器

不允许直接改变CS值

MOV

CS,[SI]

;不允许使用的指令

不允许段寄存器之间的直接数据传送

MOV

DS,ES;非法指令:不允许段寄存器间传送


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8549650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存