ファイルセットの1つのファイルのみをエコーし​​ます。

ファイルセットの1つのファイルのみをエコーし​​ます。

cp配列を使用して、あるディレクトリから別のディレクトリに2つ以上のファイルをコピーしようとしています。
私は以下を実行しました:

files=(
    LocalSettings.php
    robots.txt
    .htaccess
    ${domain}.png
    googlec69e044fede13fdc.htm
)

ファイル名はテーブルを使用してインデントされます。

私の目標は、次の後に実行することです。

cp -a "source_path/${files[@]}" "/destanation_path"

私の問題は、変数自体をテストすると、ファイルの完全なリストではなく最初の
echo $filesファイル名のみが返されることです。これをどのように説明しますか? 関連:LocalSettings.php

マルチラインモードcp;

ベストアンサー1

そのBash機能は次のように説明されていますman bash

添え字なしで配列変数を参照することは、添字0を持つ配列を参照するのと同じです。

filesアレイのすべてのメンバーを印刷するには、次の手順を実行します。

echo "${files[@]}"

次のトピックでも説明されていますman bash

${name[@]} は、名前の各要素を別々の単語に展開します。

おすすめ記事