【busybox记录】【shell指令】mv

目录

内容来源:

【GUN】【mv】指令介绍

【busybox】【mv】指令介绍

【linux】【mv】指令介绍

使用示例:

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【mv】指令介绍

mv:移动(重命名)文件
mv 用于移动或重命名文件(或目录)。
简介:
mv [option]... [-T] source dest
mv [option]... source... directory
mv [option]... -t directory source...
如果给出了两个文件名,mv将第一个文件移动到第二个文件。
如果给出了 --target-directory (-t)选项,或者如果最后一个文件是一个目录并且没有给出 --no-target-directory (-T)选项,mv将使用源文件的名称将每个源文件移动到指定的目录。
要移动一个文件,mv通常只是简单地重命名它。但是,如果重命名因为目标文件系统不同而不起作用,mv会退回到复制,就像cp -a那样,然后(假设复制成功)删除原始文件。如果复制失败,那么mv将删除目标中的任何部分创建的副本。如果将三个目录从一个文件系统复制到另一个文件系统,第一个目录的副本成功了,而第二个目录没有成功,那么第一个目录将留在目标文件系统中,第二个和第三个将留在原始文件系统中。
mv总是试图复制扩展属性(xattr),其中可能包括SELinux上下文、acl或能力。失败时,除了` Operation not supported `之外,所有的警告都会输出。
如果目标文件存在,但通常不可写,标准输入是一个终端,并且没有给出-f或--force选项,则mv提示用户是否替换该文件。(你可能拥有该文件,或者对其目录有写权限。)如果响应不是肯定的,则跳过该文件。
当源名可能是指向目录的符号链接时,避免以斜杠结尾指定源名。否则,mv可能会做一些非常令人惊讶的事情,因为它的行为取决于底层的rename系统调用。在基于现代linux内核的系统上,它会以errno=ENOTDIR的方式失败。但是,在其他系统上(至少FreeBSD 6.1和Solaris 10),它会悄无声息地重命名符号链接,而不是符号链接引用的目录。参见第2.7节[尾部斜杠],第9页。
mv命令只在目标目录为空时替换它们。诊断将跳过冲突的填充目录。
该程序接受以下选项。参见第2章[常见选项],第2页。
‘-b’
‘--backup[=method]’
	参见第2.1节[备份选项],第2页。备份每个文件,否则将被覆盖或删除。
‘--debug’ 
	向stdout打印额外的信息,解释文件是如何复制的。这个选项包含 --verbose选项。
‘-f’
‘--force’ 
	删除目标文件前不要提示用户。如果指定了多个-i、-f、-n选项,则只有最后一个生效。
‘-i’
‘--interactive’
	提示是否覆盖每个现有的目标文件,无论其权限如何,如果响应不肯定,则失败。如果指定了多个-i、-f、-n选项,则只有最后一个生效。
‘-n’
‘--no-clobber’
	不要覆盖现有的文件;而是静默地失败。如果指定了多个-i、-f、-n选项,则只有最后一个生效。此选项与-b或 --backup选项互斥。另请参阅 --update=none选项,它将跳过现有的文件,但不会失败。
‘--no-copy’
	如果由于目标文件系统不同而无法重命名文件,则诊断失败,而不是复制再删除文件。
‘--exchange’
	交换源和目标,而不是将源重命名为目标。这两个文件必须存在;它们不必是同一种类型。它交换所有的数据和元数据。
	此选项可用于将一个目录替换为另一个目录。当使用这种方式时,它应该与 --no-target-directory (-T)结合使用,以避免混淆目标位置。例如,你可能使用‘mv -T --exchange d1 d2’来交换两个目录d1和d2。
	如果源和目标都在支持原子交换的单个文件系统中,那么交换就是原子的。目前还不支持非原子交换。如果源和目标可能不在同一个文件系统上,使用 --no-copy将防止未来版本的mv通过复制实现交换。
‘-u’
‘--update’
	不要移动具有具有相同或更新的修改时间戳的现有目标的非目录;相反,在不出错的情况下,静默地跳过文件。
	如果是跨文件系统边界移动,则比较截断为目标文件系统分辨率的源时间戳,以及用于更新时间戳的系统调用;如果使用相同的源和目标执行多个‘mv -u’命令,则可以避免重复的工作。如果还指定了-n或 --no-clobber选项,则忽略此选项。
	它提供了更多的控制权,可以控制目标文件中哪些现有文件会被替换,它的值可以是以下之一:
		‘all’       这是未指定 --update选项时的默认操作,将导致目标中所有现有文件被替换。
		‘none’      这类似于弃用的 --no-clobber选项,目标文件中没有文件被替换,跳过一个文件也不会导致失败。
		‘none-fail’ 这与‘none’ 类似,目标文件中没有文件被替换,但任何被跳过的文件都会被诊断并引发故障。
		‘older’     这是指定 --update时的默认操作,如果文件比对应的源文件旧,则会导致文件被替换。
‘-v’
‘--verbose’
	在移动文件之前,打印每个文件的名称。
‘--keep-directory-symlink’
	复制时遵循现有的符号链接到目录。仅当目标目录的内容是可信的时才使用此选项,因为攻击者可以在目标目录中放置符号链接,导致cp写入任意目标目录。
‘--strip-trailing-slashes’
	删除每个源参数后面的斜杠。参见第2.7节[尾部斜杠],第9页。
‘-S suffix’
‘--suffix=suffix’
	为每个用-b生成的备份文件添加后缀。参见第2.1节[备份选项],第2页。
‘-t directory’
‘--target-directory=directory’
	指定目标目录。参见第2.6节[目标目录],第7页。
‘-T’
‘--no-target-directory’
	当最后一个操作数是目录或指向目录的符号链接时,不要特别对待它。参见第2.6节[目标目录],第7页。
‘-Z’
‘--context’
	该选项的功能类似于restorecon命令,根据目标文件和每个创建的目录的系统默认类型调整SELinux安全上下文。
退出状态为零表示成功,非零值表示失败。

【busybox】【mv】指令介绍

【linux】【mv】指令介绍

[root@localhost bin]# mv --help
用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

必选参数对长短选项同时适用。
      --backup[=CONTROL]       为每个已存在的目标文件创建备份
  -b                           类似--backup 但不接受参数
  -f, --force                  覆盖前不询问
  -i, --interactive            覆盖前询问
  -n, --no-clobber             不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
      --strip-trailing-slashes	去掉每个源文件参数尾部的斜线
  -S, --suffix=SUFFIX		替换常用的备份文件后缀
  -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
  -T, --no-target-directory    treat DEST as a normal file
  -u, --update                 move only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -Z, --context                set SELinux security context of destination
                                 file to default type
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 mv 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/mv>
或者在本地使用:info '(coreutils) mv invocation'

使用示例:

NA

常用组合指令:

NA

指令不常用/组合用法还需继续挖掘:

NA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻面条EW

感谢您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值