我使用此命令批量上传文件到使用find和curl的FTP服务器:
find /path/to/target/folder -not -path '*/\.*' -type f -exec curl -u username:password --ftp-create-dirs -T {} ftp://ftp.myserver.com/public/{} \;
问题是找到输出路径,如
/full/path/from/root/to/file.txt
所以在FTP服务器上我将文件上传到
ftp.myserver.com/public/full/path/from/root/to/file.txt
而不是
ftp.myserver.com/public/relative/path/to/file.txt
目标是将目标文件夹中的所有文件和文件夹上传到公用文件夹,但此问题正在破坏文件结构。有没有办法编辑查找输出以在路径被送入curl之前修剪路径?
答案 0 :(得分:1)
不确定你想要在你的路径中最终得到什么,但这应该给你一个想法。诀窍是执行sh
以允许您修改路径并运行命令。
find . -type f -exec sh -c 'joe=$(basename {}); echo $joe' \;