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

标签 linux macos sftp

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

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

我想设置一个脚本,以便每隔 x # 分钟通过 crontab 运行一次,并将 100 个文件从 Mac 上包含 6,500 个文件的文件夹移动到“暂存”文件夹。然后第二个脚本将获取“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: Argument list too long”错误

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

任何帮助将不胜感激!

最佳答案

您的 ls 命令失败,因为 shell 将您的文件模式扩展为太多匹配文件,以至于它们的名称加起来超过了单个命令行的限制。但不要绝望,因为您可以简单地将 ls 替换为 find:

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

关于linux - 需要在 MacO 上移动有限数量的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156704/

相关文章:

linux - proftpd sftp CentOS 权限被拒绝

c - mmap 一个不太可能被程序的任何其他部分使用的地址

c++ - 如何用C++实现支持HTTPS的RESTful Web Server?

linux - 转换格式 HH :MM:SS to seconds in a column with AWK

iphone - iPad 与 Mac 或 PC 之间的 USB 通信

linux - 在 SFTP 中下载或移动目录? -r 给出非法参数

python - 使用 pysftp 或 Paramiko,如何获得包含属性的完整目录列表?

c++ - 简单的网络编程程序 - 不工作

swift - 将 NSTreeController 与 NSOutlineView 一起使用

cocoa - 每当写入 NSPasteboard 时我都可以收到回调吗?