mv 在末尾删除文件,而不是逐个删除

mv 在末尾删除文件,而不是逐个删除

我正在使用 mv -v 在两个文件系统之间递归移动文件夹。似乎删除发生在最后(为了让 mv交易性?)。我没有足够的空间来保存同一文件夹的两个副本,有没有办法强制 mv 在完成后立即删除文件?

答案1

正如其他答案和评论所指出的,中没有这样的功能mv。但rsync有一个--remove-source-files可以按照您想要的方式运行的开关,随着操作的进行不断从源中删除文件。

-a如果您正在进行备份,我还建议您使用开关(“存档模式”)来保留(大多数)文件元数据(mv如果移动是在文件系统之间,则不会这样做,因此rsync在这方面实际上更好)。

答案2

不,手册页因为mv不要指示任何以您描述的方式改变命令行为的开关。您必须研究其他命令或算法。

姓名

mv——移动(重命名)文件概要

mv [选项]...[-T] 源 目标

mv [选项]...源...目录

mv [选项]...-t 目录 来源...

描述

将 SOURCE 重命名为 DEST,或将 SOURCE 移动到 DIRECTORY。

长选项的强制参数对于短选项也是强制的。

--backup[=控制]

make a backup of each existing destination file 

-b

like --backup but does not accept an argument 

-f,--force

do not prompt before overwriting 

-i,--interactive

prompt before overwrite 

-n, --no-clobber

do not overwrite an existing file

如果指定 -i、-f 或 -n 中的多个,则只有最后一个会生效。

--strip-trailing-slashes

remove any trailing slashes from each SOURCE argument 

-S, --suffix=后缀

override the usual backup suffix 

-t,--目标目录 =目录

move all SOURCE arguments into DIRECTORY 

-T,--无目标目录

treat DEST as a normal file 

-u,--更新

move only when the SOURCE file is newer than the destination file or when the destination file is missing

-v,--详细

explain what is being done 

- 帮助

display this help and exit 

- 版本

output version information and exit

备份后缀为“~”,除非使用 --suffix 或 SIMPLE_BACKUP_SUFFIX 设置。版本控制方法可以通过 --backup 选项或 VERSION_CONTROL 环境变量选择。以下是值:

无,关闭

never make backups (even if --backup is given)  

编号,t

make numbered backups  

现有的,无

numbered if numbered backups exist, simple otherwise  

简单,从不

always make simple backups

来源:https://linux.die.net/man/1/mv

相关内容