需要在MacO上移动有限数量的文件

时间:2013-08-09 22:39:11

标签: linux macos sftp

我需要使用sftp将文件从本地MacBook移动到远程服务器。

我需要大约6000个文件并将它们移动到远程服务器进行处理。由于处理系统的限制,我一次最多只能处理100个文件。如果它监视的文件夹中有超过100个文件,处理系统将弹出。

我想设置一个脚本,以便每隔x#分钟通过crontab运行一次,并将包含6,500个文件的Mac文件夹中的100个文件移动到'staging'文件夹。然后第二个脚本将选取并将'staging'文件夹的内容上传到sftp文件夹。

我的crontab工作正常,但是,我无法弄清楚如何限制我移动到100的文件数。

这是我到目前为止所做的。也许我这样做完全错了,所以任何建议都会受到赞赏!

#!/bin/bash
cd /Users/Me/Downloads/test
# Get files from unprocessed where the 6k files are located.

'ls'命令返回'-bash:/ bin / ls:参数列表太长'错误

ls unprocessed/*.pdf | head -n 99 > flist
 while read f
   do
    mv "$f" .
 done < flist

此脚本会将其上传到sftp服务器。

./ exp.sh

这会在完成时将其移动到单独的文件夹

for f in *PAY*.pdf
 do
   mv "$f" processed/
done

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您的ls命令失败,因为shell将您的文件模式扩展为如此多的匹配文件,这些文件的名称聚合超过了单个命令行的限制。但请不要绝望,因为您可以简单地将ls替换为find

find unprocessed -name '*.pdf' | head -n 99 > flist