
「_CSF」で終わるすべてのサブディレクトリのすべての.fastqファイルを別の作成されたサブディレクトリであるdir1_CSFにコピーしたいと思います。
特定のファイルをコピーする方法は理解していますが、特定のディレクトリからコピーする方法はわかりません。
私はシェルスクリプトに初めて触れたので、助けはとても役に立ちます。
答え1
シェルを使用すると、次のことができます。
find *_CSF -type f -iname "*.fastq" -exec cp {} dir1_CSF/ \;
答え2
DIR を最上位ディレクトリに設定し、TARGET を宛先ディレクトリに設定します。次に、次を実行します。
find $DIR \( -type d -name "$TARGET" -prune \) -o \
\( -type f -name "*.fastq" -exec cp -t "$TARGET" {} + \)
はい、それは順序です。これは、GNU find と GNU fileutils がこれらの場合にcp
便利な引数を提供すると仮定します。-t
どのように動作しますか?
(設定どおり)で始まるコマンドは、拡張子と一致するすべてのファイルを探します(ディレクトリfind
の下のファイルを除く)。次に、これらすべてのファイル名をプログラムに渡します。$DIR
$TARGET
cp