linux之mv命令排除某个文件或文件夹


1、

https://blog.csdn.net/afsdfq/article/details/106890424?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-106890424.pc_agg_new_rank&utm_term=mv%E6%8E%92%E9%99%A4%E6%96%87%E4%BB%B6&spm=1000.2123.3001.4430

假设目录结构如下:

  1.   |parent
  2.   |--child1
  3.   |--child2
  4.   |--grandChild1
  5.   |--grandChild2
  6.   |--grandChild3
  7.   |--grandChild4
  8.   |--grandChild5
  9.   |--grandChild6

现在要改为:

  1.   |parent
  2.   |--child1
  3.   | |--grandChild1
  4.   | |--grandChild2
  5.   | |--grandChild3
  6.   | |--grandChild4
  7.   | |--grandChild5
  8.   | |--grandChild6
  9.   |--child2

需要将除了child1、child2目录的其他文件移动到目录child1下。
使用下面的命令即可实现:

mv !(child1|child2) child1

若遇到

-bash: !: event not  

错误,请执行

shopt -s extglob

表示扩展模式匹配操作符,就可以使用更多的通配符。

2、

# mv !(a|back) back