相关疑难解决方法(0)

带有空格的文件名 for 循环,查找命令

我有一个脚本,可以将多个子文件夹和存档中的所有文件搜索到 tar。我的脚本是

for FILE in `find . -type f  -name '*.*'`
  do
if [[ ! -f archive.tar ]]; then

  tar -cpf archive.tar $FILE
else 
  tar -upf archive.tar $FILE 
fi
done
Run Code Online (Sandbox Code Playgroud)

find 命令给了我以下输出

find . -type f  -iname '*.*'
./F1/F1-2013-03-19 160413.csv
./F1/F1-2013-03-19 164411.csv
./F1-FAILED/F2/F1-2013-03-19 154412.csv
./F1-FAILED/F3/F1-2011-10-02 212910.csv
./F1-ARCHIVE/F1-2012-06-30 004408.csv
./F1-ARCHIVE/F1-2012-05-08 190408.csv
Run Code Online (Sandbox Code Playgroud)

但是FILE变量只存储路径的第一部分./F1/F1-2013-03-19,然后是下一部分160413.csv

我尝试使用readwhile 循环,

while read `find . -type f  -iname '*.*'`;   do ls $REPLY; done
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

bash: read: `./F1/F1-2013-03-19': not a valid …
Run Code Online (Sandbox Code Playgroud)

bash scripts find

48
推荐指数
3
解决办法
11万
查看次数

标签 统计

bash ×1

find ×1

scripts ×1