Bash

用於查找文件的 bash 腳本認為文件名應該是整數

  • May 6, 2018

我正在編寫一個腳本以從文本文件中獲取文件名列表,以便它可以找到文件並將它們複製到特定文件夾。

當我執行腳本時,我收到以下錯誤:

./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

我不確定您要做什麼,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

引用自:https://unix.stackexchange.com/questions/442024