このコマンドの機能を説明できますか?
files=(this_is_filename)
for filename in ${files[@]}; do
ls -t1 ../htory/$filename* |
head -1 |
xargs -I fname cp -p fname ../htory2/somefile.CSV
done
特に、このコマンド部分は
xargs -I fname cp -p fname ../htory2/somefile.CSV
答え1
xargs
入力をパラメータに変換します。この-I
オプションは、パラメーターのプレースホルダーとして使用する文字列を指定します。したがって、パイプライン出力が次のような場合
file1
file2
この行は次xargs
のように変換されます。
cp -p file1 ../htory2/somefile.CSV
cp -p file2 ../htory2/somefile.CSV
ただし、一意は1行を返すので、代わりに使用すると実際の利点を見ることはhead -1
できません。xargs
cp -p "$(ls -t1 ../htory/$filename* | head -1)" ../htory2/somefile.CSV
また、ターゲットファイルは常に同じなので、.txtの最後のファイルで上書きされます${files[@]}
。