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

xqkwcwgp  于 2023-01-29  发布在  Linux
关注(0)|答案(5)|浏览(206)

作为一个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
...

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

pokxtpni

pokxtpni1#

你能做到

mv car.txt bicycle.txt vehicle/

(Note上面的/是不必要的,我包含它只是为了确保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)
mfpqipee

mfpqipee2#

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

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

mv *.txt *.docx vehicle/

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

mv car.txt bicycle.txt vehicle/

**编辑:**正如评论中提到的,如果你用手移动文件,我建议使用mv -i ...,它会在目标文件已经存在的情况下警告你,让你选择不覆盖它。其他“文件破坏者”命令,如cp & rm也有一个-i选项

baubqpgj

baubqpgj3#

mv命令允许我们将多个文件移动到另一个目录中。你所要做的就是写下你想移动的每个文件的名字,用space分隔。
以下命令将帮助您:
mv car.txt bicycle.txt airplane.html train.docx vehicle

mv car.txt bicycle.txt airplane.html train.docx vehicle/
这两种方法都有效。

jum4pzuy

jum4pzuy4#

您可以使用mv命令将多个文件移动到特定目录。在您的方案中,可以使用以下命令执行此操作:

mv car.txt bicycle.txt airplane.html train.docx vehicle/

您必须注意的一点是,最后一个条目是目的地,除mv之外的其他所有条目都是源。
另一种情况是目的地不在我们的目录中,那么我们必须选择绝对路径来代替vehicles/。
注意:绝对路径总是从**/**开始,这意味着我们是从根目录遍历。

mzaanser

mzaanser5#

我编写了一个小的bash脚本,它将使用bash中的mv和find命令将存在于多个目录(使用模式匹配)**中的多个文件 *(使用模式匹配)移动到单个位置

#!/bin/bash

for i in $(find /path/info/*/*.fna -type f) # find files and return their path

do

        mv -iv $i -t ~/path/to/destination/directory # move files 

done

1.$()用于命令替换(换句话说,它扩展了其中的表达式)
1.//通配符匹配任何目录,您可以将其替换为任何通配符表达式
1.
. fna用于查找扩展名为. fna的任何文件
1.- type f用于获取找到的文件的完整路径信息

  1. mv中的-i表示覆盖前的提示(如果通配符exp错误,则需要格外小心)
    1.- v表示详细
    1.- t表示目的地
    注:上述标志不是强制性的
    希望这能帮上忙

相关问题