目录结构是这样的;
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