我有这样的目录结构;
dir
├── dirA
│ └── file1
│ └── subdir
└── dirB
└── file2
└── subdir
我需要将 file1 移动到 dirA/subdir,将 file2 移动到 dirB/subdir。我怎样才能在 Linux 中做到这一点?
答案1
您dir
可以mv dirA/file1 /dirA/subdir/
并且mv dirB/file2 /dirB/subdir/
您是否尝试在脚本中或使用单个命令来执行此操作?
杰森·C.
答案2
这对我有用,将各个存储库目录中的各种 .yml 文件移动到每个存储库目录中的“任务”子目录中:
for dir in */; do mv -- "$dir"*.yml "${dir}tasks/"; done
答案3
Gnu 查找
find dir -mindepth 2 -maxdepth 2 -type f -execdir sh -c 'mv -t ./*/ "$1"' find-sh {} \;
find dir \
-mindepth 2 -maxdepth 2 -type f \
-execdir sh -c '
mv -t ./*/ "$1"
' find-sh {} \;
原始目录结构
dir
├── dirA/
│ ├── fileA
│ └── subdir/
│ ├── e
│ ├── q
│ └── w
└── dirB/
├── fileB
└── subdir/
├── c
├── x
└── z
移动操作后
dir
├── dirA/
│ └── subdir/
│ ├── e
│ ├── fileA
│ ├── q
│ └── w
└── dirB/
└── subdir/
├── c
├── fileB
├── x
└── z
答案4
在 shell 中执行以下命令:
mv file1 /dir/dirA
mv file2 /dir/dirB**
mv代表移动
mv "filename.txt" "location/where/you/want/file/to/go"