Linux Bash:将多个不同的文件移动到同一个目录中

新手上路,请多包涵

作为一个相当新手的 Linux 用户,我似乎无法找到如何做到这一点。我正在尝试将一个目录中的所有唯一文件移动到另一个目录中。例子:

 $ ls
vehicle car.txt bicycle.txt airplane.html train.docx (more files)

我想要车内的 car.txt、bike.txt、plane.html 和 train.docx。

现在我通过单独移动文件来做到这一点:

 $ mv car.txt vehicle
$ mv bicycle.txt vehicle
...

我怎样才能在一行中做到这一点?

原文由 Conner 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 452
2 个回答

你可以做

mv car.txt bicycle.txt vehicle/

(请注意,上面的 / 是不必要的,我包含它只是为了确保 vehicle 是一个目录。)

您可以按如下方式进行测试:

 cd               #Move to home directory
mkdir temp       #Make a temporary directory
touch a b c d    #Make test (empty) files ('touch' also updates the modification date of an existing file to the current time)
ls               #Verify everything is there
mv a b c d temp/ #Move files into temp
ls               #See? They are gone.
ls temp/         #Oh, there they are!
rm -rf temp/     #DESTROY (Be very, very careful with this command)

原文由 Richard 发布,翻译遵循 CC BY-SA 3.0 许可协议

移动所有 .txt 文件的速记命令

您可以尝试使用通配符。在下面的代码中, * 将匹配所有以 .txt.docx 结尾的文件,并将它们移动到车辆文件夹。

 mv *.txt *.docx vehicle/

如果要将特定文件移动到目录

mv car.txt bicycle.txt vehicle/

编辑: 如评论中所述,如果您手动移动文件,我建议使用 mv -i ... 如果目标文件已经存在,它将警告您,让您选择不覆盖它。其他“文件销毁器”命令(如 cp 和 rm)也有 -i 选项

原文由 Amit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题