ファイルを見つけて特定のフォルダにコピーできるように、テキストファイルからファイル名のリストを取得するスクリプトを作成しています。
スクリプトを実行すると、次のエラーが発生します。
./findfile.sh: 行 8: spam.txt: 構文エラー: 無効な算術演算子 ('.txt' タグ付きエラー)
Bashはこれが整数でなければならないと思う理由とそれを修正する方法は何ですか?
#!/bin/bash
#Find files from a list in a file and copy them to a common folder
mapfile -t filelist < filelist.txt
for i in ${filelist[i]}
do
xargs find ~ -name '${filelist[i]}' | cp --parents ~/Documents/foundfiles/${filelist[i]}
done
ベストアンサー1
私はあなたが何をしたいのかわかりませんxargs
。そしてあなたのcpに引数が欠けているようです。~/Documents/foundfiles/${filelist[i]}
コピーしたいところがここです。到着?
これは私に合ったコードです。
#!/usr/bin/env bash
mapfile -t filelist < ~/tmp/filelist.txt
for file in "${filelist[@]}"; do
find ~ -name "$file" -exec cp --parents {} ~/tmp/dest/ \;
done