如何移动多个目录,但排除当前路径中具有相似名称的文件?

如何移动多个目录,但排除当前路径中具有相似名称的文件?

假设我有一个包含以下内容的目录:

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

相关内容