英语法语西班牙文

OnWorks 网站图标

mad - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中疯狂运行

这是 mad 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


mmv - 通过通配符模式移动/复制/附加/链接多个文件

概要


毫米波 [-m|x|r|c|o|a|l|s[-h[-d|p[-g|t[-v|n[--[ ]

示例


重命名所有 *.JPEG 当前目录下的文件 * .jpg:

mmv '*.jpeg' '#1.jpg'

替换第一次出现的 ABC - XYZ 在当前目录下的所有文件中:

mmv '*abc*' '#1xyz#2'

重命名以 .html.en, .html.de等以结尾 .en.html, .de.html
当前目录:

mmv '*.html.??' '#1.#2#3.html'

重命名音乐文件 <track 没有。> - - <song 标题>.ogg -
<track 没有。> - <song 标题>.ogg 在当前目录中:

mmv '* - * - *.ogg' '#2 - #1 - #3.ogg'

商品描述


毫米波 移动(或复制、附加或链接,如指定)每个匹配
模式指定的目标名称 图案。 执行此多重操作
安全,即不会因目标名称冲突而意外删除文件
使用现有文件名或其他目标名称。 此外,在做任何事情之前,
毫米波 尝试检测由整个操作集导致的任何错误
指定并让用户选择通过避免冒犯来进行
部分或中止。 毫米波 确实支持大文件(LFS),但它*不*支持稀疏
文件(即爆炸它们)。

任务选项

不管 毫米波 移动、复制、追加或链接由给定的第一组选项控制
以上。 如果这些都没有指定,则任务由命令名称给出,在该命令名称下
毫米波 被调用(argv[0]):

命令名称默认任务

毫米波-x
mcp-c
疯狂-a
毫升 -l

任务选项选项是:

-m :将源文件移动到目标名称。 两者必须在同一设备上。 不会动
目录。 如果源文件是符号链接,则不移动链接
检查来自新目录的链接目标是否与旧目录不同。

-x :与 -m 相同,不同之处在于跨设备移动是通过复制然后删除源来完成的。
复制时,设置目标的权限位和文件修改时间
文件到源文件的那个。

-r :将源文件或目录重命名为目标名称。 目标名称不得包含
路径:文件在所有情况下都保留在同一目录中。 这个选项是唯一的
重命名目录下的方法 毫米波.

-c : 将源文件复制到目标名称。 设置文件修改时间和权限
目标文件的位与源文件的位,无论是否
目标文件已经存在。 链和循环(将在下面解释)不是
不允许的。

-o : 用源文件覆盖目标名称。 如果目标文件存在,它将被覆盖,
保留其原始所有者和权限位。 如果它不存在,它是
创建,读写权限位根据 遮罩(1)、执行
从源文件复制的权限位。 在任何一种情况下,文件修改
时间设置为当前时间。

-a :将源文件的内容附加到目标名称。 目标文件修改时间为
设置为当前时间。 如果目标文件不存在,则创建它
权限位设置为 -o 下。 与所有其他选项不同,-a 允许多个
具有相同目标名称的源文件,例如“mmv -a \*.c big”将附加所有
“.c”文件到“大”。 链和循环也是允许的,所以“mmv -aff”将
加倍“f”。

-l :将目标名称链接到源文件。 两者必须在同一设备上,并且源
不能是目录。 不允许使用链条和循环。

-s :与 -l 相同,但使用符号链接而不是硬链接。 对于结果链接
要重新瞄准源,源名称必须以“/”开头,或者
目标必须驻留在当前或源目录中。 如果这些都没有
条件满足,链接被拒绝。 但是,源和目标可以驻留在
不同的设备,源可以是一个目录。

只能给出这些选项中的一个,它适用于所有匹配的文件。 其余的
选项不需要单独给出,即允许“mmv -mk”。

多个模式对/从 STDIN 读取模式

-- 可以通过省略模式对来指定模式对
命令行,并在标准输入上输入它们,每行一对。 (如果一个模式
对在命令行上给出,标准输入不被读取。)因此,

毫米波
AB
光盘

将“a”重命名为“b”,将“c”重命名为“d”。 如果一个文件可以匹配多个给定的
模式, 使用第一个匹配对的模式。 因此,

毫米波
AB
交流电

会给出错误消息“a -> c : no match”,因为文件“a”(即使它存在)是
已经与第一个模式对匹配。

警告: 这种操作模式确实 而不去 如果模式本身包含 剩余名额。 看
http://bugs.debian.org/149873 了解详情。

这款 模式

这款 模式是带有嵌入通配符的文件名:'*'、'?'、'['...']'和';'。 这
前三个有他们平常的 sh(1) 分别匹配任意字符串的含义
字符,匹配任何单个字符,以及匹配一组字符中的任何一个。

在“[”和“]”之间,指定了从字符“a”到字符“z”的范围
用“az”。 匹配字符集可以通过在后面插入一个 '^' 来否定
'['。 因此,"[^b-e2-5_]" 将匹配除 'b' 到 'e'、'2' 到 '5' 之外的任何字符,
和 '_'。

请注意,模式中允许使用路径,通配符可能与
随意砍。 这 ';' 通配符可用于匹配任意深度的文件
目录树。 它与重复任意次数的“*/”相同,包括零,
并且只能出现在模式的开头或跟在“/”之后。 因此“;*.c”
将匹配当前目录中或以下的所有“.c”文件,而“/;*.c”将匹配它们
文件系统上的任何位置。

另外,如果 模式(或 模式)以“~/”开头,'~'被替换
与主目录名称。 (注意“~user”功能 长山壕(1) 不是
已实现。)但是,“~”不被视为通配符,因为它不是
分配了通配符索引(见下文)。

由于匹配除 -r 或 -s 之外的任务选项下的目录将导致
错误,除 -r 和 -s 之外的任务仅与完全显式的目录匹配
模式(即不包含通配符)。 在 -r 和 -s 下,这仅适用于“。” 和
“……”。

以“.”开头的文件只匹配 以 a 开头的模式
显式的“.”。 但是,如果指定了 -h,它们将正常匹配。

警告:由于 shell 在传递命令行之前通常会扩展通配符
参数 毫米波,通常需要将命令行括起来 模式
用引号引起来。

这款 模式

这款 模式是一个带有嵌入的文件名 通配符 指标,其中索引由
字符“#”后跟一串数字。 当源文件匹配
模式,文件的目标名称由 通过替换模式
通配符索引由与引用的通配符匹配的实际字符组成
源名称。 因此,如果 模式是“abc*.*”并且 模式是“xyz#2.#1”,然后
“abc.txt”的目标是“xyztxt。”。 (第一个 '*' 匹配“”,第二个匹配
"txt".) 同样,对于模式对 ";*.[clp]" -> "#1#3/#2","foo1/foo2/prog.c" 是
针对“foo1/foo2/c/prog”。 请注意,在“#1”之后没有“/”
模式,因为字符串与任何 ';' 匹配始终为空或以“/”结尾。 在
在这种情况下,它匹配“foo1/foo2/”。

之前将通配符匹配的字符串转换为小写或大写
将其嵌入目标名称中,分别在“#”和“#”之间插入“l”或“u”
一串数字。

这款 模式,如 模式,可以以“~/”开头(见上文)。 这不
需要附上 命令行上的引号中的模式,因为 长山壕(1) 展开
'~' 的方式与 毫米波 (或者,在这种情况下 sh(1)、不展开
全部)。

对于除 -r 以外的所有任务选项,如果目标名称是目录,则真正的目标
名称是通过附加一个“/”后跟源文件名的最后一个组成部分形成的。
例如,“mmv dir1/a dir2”会,如果“dir2”确实是一个目录,实际上移动
“dir1/a”到“dir2/a”。 但是,如果“dir2/a”已经存在并且它本身就是一个目录,这个
被视为错误。

去除任何字符(例如“*”、“?”或“#”)的特殊含义 毫米波,当
实际替换名称必须包含字符“#”,在特殊字符之前加上
a '\' (并且由于 shell 将参数括在引号中)。 这也适用于
当文件名中必须跟有数字时,终止通配符索引,例如
“a#1\1”。

链条和循环

链是一系列指定的动作,其中一个动作的目标名称指的是
另一个动作的源文件。 例如,

毫米波
AB
公元前

指定链“a”->“b”->“c”。 一个循环是一个链,其中最后一个目标名称
指回第一个源文件,例如“mmv aa”。 毫米波 检测链和循环
不管它们的组成动作实际给出的顺序如何。 在哪里
允许,即在移动、重命名和附加文件时,处理链和循环
优雅地,通过以正确的顺序执行它们。 第一次重命名打破了循环
将其中一个文件添加到临时名称(或在执行时仅记住其原始大小)
附加)。

碰撞和删除

当任何两个或多个匹配的文件必须移动、复制或链接到相同的文件时
目标文件名, 毫米波 在执行任何操作之前将条件检测为错误。
此外, 毫米波 检查它的任何操作是否会导致现有的破坏
文件。 如果指定了 -d(删除)选项,则完成所有文件删除或覆盖
默默。 在 -p(保护)下,所有删除或覆盖(除了指定的那些
标准输入中的“(*)”,见下文)被视为错误。 如果这两个选项都不是
指定,用户被分别询问每个删除或覆盖。 (一个新的流
“/dev/tty”用于所有交互式查询,而不是标准输入。)

错误处理

每当检测到用户操作规范中的任何错误时,都会显示一条错误消息
在标准输出上给出,和 毫米波 继续检查其余的指定操作。
一旦检测到所有错误, 毫米波 询问用户他是否希望继续
避免错误行为或完全中止。 这个和所有其他查询可能是
通过指定 -g (go) 或 -t (terminate) 选项来避免。 前者会
化解一切困难,避免错误行为; 后者将中止 毫米波 if
检测到任何错误。 指定其中一个默认值 毫米波 到 -p,除非 -d 是
指定(见上文)。 因此,-g 和 -t 在运行时最有用 毫米波 在后台
或者在 shell 脚本中,当不需要交互式查询时。

业务报告

一旦确定了要执行的操作, 毫米波 默默地执行它们,除非
指定了 -v(详细)或 -n(不执行)选项。 前者原因 毫米波 举报
每个对标准输出执行的操作作为

a -> b :完成。

此处,“a”和“b”将分别替换为源名称和目标名称。 如果
action 删除旧目标,在目标名称后插入一个“(*)”。 此外,该
必须打破循环时修改“->”符号:“>”在
在旧目标重命名为临时目标之前的操作,并且“-”更改为
'=' 在使用临时文件的操作上。

在 -n 下,不执行任何操作,但会打印上述消息
带有“:done”的标准输出。 省略。

-n 生成的输出可以(编辑后,如果需要)反馈给 毫米波
标准输入(通过省略 -- 配对 毫米波 命令行)。 为方便
这个, 毫米波 忽略标准输入上看起来像它自己的错误并“完成”的行
消息,以及所有以空格开头的行,并将接受模式对
有或没有中间的“->”(或“-^”、“=>”或“=^”)。 后面带有“(*)”的行
目标模式仅对匹配此模式的文件启用 -d 的效果,因此
这种删除是默默完成的。

警告: 这意味着 意外 可能会发生,如果 与模式匹配
包含 剩余名额。 看 http://bugs.debian.org/149873 了解详情。

喂食时 毫米波 它自己的输出,必须记住再次指定任务选项(如果
any) 最初用于生成它。

尽管 毫米波 尝试在执行任何指定操作之前预测所有事故,
可能会发生事故。 例如, 毫米波 不检查足够的可用空间时
复制。 因此,尽管付出了所有努力,但在经过一段时间后,仍有可能某个操作失败
其他的已经完成了。 为了尽可能轻松地恢复, 毫米波 报告其中
操作已经完成,并且在此类失败后仍需执行
发生。 然后它中止,不尝试做任何其他事情。 一旦用户清除
问题,他可以把这个报告反馈给 毫米波 在标准输入上完成
任务。 (如果标准输出为
尚未重定向。)

退出 状态


毫米波 如果它在做任何事情之前中止,则以状态 1 退出,如果它因到期而中止则以状态 2 退出
完成某些操作后失败,否则状态为 0。

使用 onworks.net 服务在线使用 mad


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad