将多个文件移动到linux中的目录



目录结构是这样的;

dir
├── dirA
│   └── file1
│   └── subdir
└── dirB
└── file2
└── subdir

我需要将file1移动到subdir1, file2移动到subdir2。我如何在Linux中做到这一点?

我解决了我的问题;

$ for dir in dir/*/; do mv dir/*/file* "$dir/subdir"; done

您可以编写一个简单的bash脚本。下面是示例目录树结构。

tree 
.
|-- dir-2
|   |-- file-1
|   |-- file2
|   |-- file3
|   |-- file4
|   `-- subdir
|-- dir-3
|   |-- file-1
|   |-- file2
|   |-- file3
|   |-- file4
|   `-- subdir
|-- dir-4
|   |-- file-1
|   |-- file2
|   |-- file3
|   |-- file4
|   `-- subdir

从父目录运行下面的脚本。

#!/bin/bash
ls -d */ > out.txt
for i in `cat out.txt` ; do
ls -l $i
cd $i
mv * subdir/ 
cd .. 

done;

树结构。

$ tree 
.
|-- dir-2
|   `-- subdir
|       |-- file-1
|       |-- file2
|       |-- file3
|       `-- file4
|-- dir-3
|   `-- subdir
|       |-- file-1
|       |-- file2
|       |-- file3
|       `-- file4
|-- dir-4
|   `-- subdir
|       |-- file-1
|       |-- file2
|       |-- file3
|       `-- file4

最新更新