我正在尝试将文件列表上传到服务器。这是我的脚本
files=$(shopt -s nullglob dotglob; echo /media/USB/*) > /dev/null 2>&1
if (( ${#files} ))
then
for file in $files
do
echo "Filename"
echo $file
curl -i -X POST -F files=@$file 192.168.1.122:5000/upload
done
基本上我试图将USB驱动器上的所有文件都上传到本地服务器。 curl命令给了我麻烦。我可以将这些文件移动到我在此系统上安装的驱动器,但我无法使用curl命令发送它们。我根据其他相关问题尝试了@"$file"
和@\"$file\"
的变体,但我无法使其发挥作用。然而令人讨厌的是,当我这样做时:
curl -i -X POST -F files=@/absolute/path/to/my/file.txt 192.168.1.122:5000/upload
它按预期工作。我怎样才能在循环中使用它?
答案 0 :(得分:3)
所以我最终找出了一个解决方案,我会分享以防其他人遇到这个问题。我不确定为什么修复它但我只需要在curl命令中的files=@$file
周围加上引号:
curl -i -X POST -F "files=@$file" 192.168.1.122:5000/upload
将此留在这里以防万一对某人有用。