Bash
用於查找文件的 bash 腳本認為文件名應該是整數
我正在編寫一個腳本以從文本文件中獲取文件名列表,以便它可以找到文件並將它們複製到特定文件夾。
當我執行腳本時,我收到以下錯誤:
./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