nev*_*int 10 unix linux bash shell mv
我有一个看起来像这样的目录
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
Run Code Online (Sandbox Code Playgroud)
我想要做的是在子目录搬出所有的"*.masked"文件/1
高达/Un
.在Linux/Unix中有一种简洁的方法吗?
bsd*_*ish 16
移动文件的典型方法是匹配特定表达式的所有文件
mv 1/*.masked targetDir
Run Code Online (Sandbox Code Playgroud)
targetDir可能在哪里..
如果你想从目录1,2,3移动它,你可以做类似的事情
mv */*.masked targetDir
Run Code Online (Sandbox Code Playgroud)
或者,如果你想从编号目录中专门移动它,你可以运行类似的东西
mv [0-9][0-9]/*.masked targetDir
Run Code Online (Sandbox Code Playgroud)
许多unix shell也支持路径的目录部分中的*运算符.以下至少在bash和zsh中起作用:
ls */*.masked
Run Code Online (Sandbox Code Playgroud)
这将返回以.mask一个目录更深的所有文件.
所以移动他们:
mv */*.masked destination
Run Code Online (Sandbox Code Playgroud)