特定の名前のファイルを別のフォルダにコピーする

特定の名前のファイルを別のフォルダにコピーする

ファイルの多いフォルダがあります。次の名前(スペースで区切り)で始まるすべてのファイルをコピーしたいと思います。

abc abd aer ab-x ate

別のフォルダに。どうすればいいですか?

ベストアンサー1

csh、、、、と組み合わせて使用tcsh​​できksh93ます。bashfishzsh -o cshnullglob支柱の拡張そしてワイルドカードこれを行うには(--これらのファイル名は必要ありませんが、単なる例であると思います):

cp -- {abc,abd,aer,ab-x,ate}* dest/

中括弧拡張を無効にするには、forループを使用できます(ここではPOSIX / Bourneスタイルの構文)。

for include in abc abd aer ab-x ate; do
    cp -- "$include"* dest/
done

ファイルの数が多い場合は、cp各インクルードが一度呼び出されるため、速度が遅くなる可能性があります。もう一つの方法は、配列を埋めてそこから始めることです(ここksh93またはzsh最近のbash構文)。

files=()
includes=(abc abd aer ab-x ate)

for include in "${includes[@]}"; do
    files+=( "$include"* )
done

cp -- "${files[@]}" dest/        

おすすめ記事