質問

このようなディレクトリがあります

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シェルは、パスのディレクトリ部分でも*演算子をサポートしています。以下は少なくともbashとzshで動作します:

ls */*.masked

これは、.maskedで終わるすべてのファイルを1つ下のディレクトリに戻します。

それらを移動するには:

mv */*.masked destination
mv */*.masked .
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top