作为一个Linux新手,我似乎不知道如何做到这一点。我试图将一个目录中的唯一文件移动到另一个目录中。示例:
$ ls
vehicle car.txt bicycle.txt airplane.html train.docx (more files)
我希望car.txt、bicycle.txt、airplane.html和train.docx包含在车辆中。
现在,我通过逐个移动文件来执行此操作:
$ mv car.txt vehicle
$ mv bicycle.txt vehicle
...
我怎么能在一行中做到这一点?
5条答案
按热度按时间pokxtpni1#
你能做到
(Note上面的
/
是不必要的,我包含它只是为了确保vehicle
是一个目录。)您可以按如下所示进行测试:
mfpqipee2#
移动所有.txt文件的速记命令
您可以尝试使用通配符。在下面的代码中,
*
将匹配所有名称以.txt
或.docx
结尾的文件,并将它们移动到车辆文件夹中。如果要将特定文件移动到目录
**编辑:**正如评论中提到的,如果你用手移动文件,我建议使用
mv -i ...
,它会在目标文件已经存在的情况下警告你,让你选择不覆盖它。其他“文件破坏者”命令,如cp & rm也有一个-i
选项baubqpgj3#
mv
命令允许我们将多个文件移动到另一个目录中。你所要做的就是写下你想移动的每个文件的名字,用space
分隔。以下命令将帮助您:
mv car.txt bicycle.txt airplane.html train.docx vehicle
或
mv car.txt bicycle.txt airplane.html train.docx vehicle/
这两种方法都有效。
jum4pzuy4#
您可以使用mv命令将多个文件移动到特定目录。在您的方案中,可以使用以下命令执行此操作:
您必须注意的一点是,最后一个条目是目的地,除mv之外的其他所有条目都是源。
另一种情况是目的地不在我们的目录中,那么我们必须选择绝对路径来代替vehicles/。
注意:绝对路径总是从**/**开始,这意味着我们是从根目录遍历。
mzaanser5#
我编写了一个小的bash脚本,它将使用bash中的mv和find命令将存在于多个目录(使用模式匹配)**中的多个文件 *(使用模式匹配)移动到单个位置
1.$()用于命令替换(换句话说,它扩展了其中的表达式)
1.//通配符匹配任何目录,您可以将其替换为任何通配符表达式
1. . fna用于查找扩展名为. fna的任何文件
1.- type f用于获取找到的文件的完整路径信息
1.- v表示详细
1.- t表示目的地
注:上述标志不是强制性的
希望这能帮上忙