![如何移动多个目录,但排除当前路径中具有相似名称的文件?](https://linux22.com/image/1333202/%E5%A6%82%E4%BD%95%E7%A7%BB%E5%8A%A8%E5%A4%9A%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%8C%E4%BD%86%E6%8E%92%E9%99%A4%E5%BD%93%E5%89%8D%E8%B7%AF%E5%BE%84%E4%B8%AD%E5%85%B7%E6%9C%89%E7%9B%B8%E4%BC%BC%E5%90%8D%E7%A7%B0%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
假设我有一个包含以下内容的目录:
dir1/
dir2/
dir3/
...
dir50/
dir1.txt
dir2.txt
dir3.txt
...
dir50.txt
我一直在使用 mv dir* /someotherpath/,然后将 *.txt 文件移回。有没有办法只移动目录?
答案1
如果您的目录结构只有 1 级深度,mv dir*/ destination
则可以完成此任务。
答案2
您还可以使用find
来完成此任务
find . -maxdepth 1 -type d -name "dir*" -exec mv '{}' destination/ \;
maxdepth
如果目录结构有更多级别,请更改参数或将其删除
答案3
文件结构如下:
/dir2move2
/dir
/subdir1
/subdir2
index.js
如果只移动子目录而不移动文件,你可以这样做:
mv ./dir/*/ ./dir2move2