自动将文件从多个源文件夹传输到一个目标文件夹

自动将文件从多个源文件夹传输到一个目标文件夹

我需要使用命令行将不同文件夹中的不同文件移动到新文件夹。这些文件具有相同的格式.asc:例如,分别位于20file1.asc20file2.asc20file3.asc中的文件folder1folder2folder3。我只需将.asc所有文件夹中的 移动到新文件夹 即可folder4。每个文件夹都按照方案命名yyyymmdd

谢谢

答案1

我会使用简单的脚本来实现这一点,如下所示:

for x in {folder1,folder2,folder3}; do mv $x/*.asc folder4/; done

此脚本假定您处于包含文件夹 1、文件夹 2、文件夹 3 的路径中。您可以根据需要对其进行调整。

对于特定位置的所有文件夹,您可以执行以下操作:

ls -1 >> file
for x in `cat file`; do mv $x/*.asc folder4/; done

但请注意,该ls -1文件夹中还将包含文件,并且如果该文件夹中也有文件,您将收到这些文件的错误,提示该路径不存在。

答案2

假设所有源文件夹都位于同一目录路径,则可以使用以下 bash 脚本:

ls -1 >> sources
for x in `cat sources`; do mv $x/*.asc target/; done
rm sources

将其保存在主文件夹中name.sh,然后运行

$ sh name.sh

自动完成工作。

相关内容