ファイルの多いフォルダがあります。次の名前(スペースで区切り)で始まるすべてのファイルをコピーしたいと思います。
abc abd aer ab-x ate
別のフォルダに。どうすればいいですか?
ベストアンサー1
csh
、、、、と組み合わせて使用tcsh
できksh93
ます。bash
fish
zsh -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/