ディレクトリからすべてのファイルを1ステップ上に移動する
質問
このようなディレクトリがあります
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 .
所属していません StackOverflow