我有一个看起来像这样的目录
fool@brat:/mydir/ucsc_mm8> tar -xvf *.tar 1/chr1.fa.masked 1/chr1_random.fa.masked 2/chr2.fa.masked 3/chr3.fa.masked 4/chr4.fa.masked 5/chr5.fa.masked 5/chr5_random.fa.masked 19/chr19.fa.masked Un/chrUn_random.fa.masked
我想要做的是在子目录搬出所有的"*.masked"文件/1
高达/Un
.在Linux/Unix中有一种简洁的方法吗?
移动文件的典型方法是匹配特定表达式的所有文件
mv 1/*.masked targetDir
targetDir可能在哪里..
如果你想从目录1,2,3移动它,你可以做类似的事情
mv */*.masked targetDir
或者,如果你想从编号目录中专门移动它,你可以运行类似的东西
mv [0-9][0-9]/*.masked targetDir
许多unix shell也支持路径的目录部分中的*运算符.以下至少在bash和zsh中起作用:
ls */*.masked
这将返回以.mask一个目录更深的所有文件.
所以移动他们:
mv */*.masked destination
mv */*.masked .