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/

相关文章:

php - 无法在我的 IBM CLoud 中的 PHP Cloud Foundry 应用程序和 Postgresql 之间建立连接

linux - 使用 Linux 使用我的自定义库 (.h) 编译我的 C 程序

objective-c - 如何获取 Mac OS X 上的默认临时目录?

macos - 在 mac osx 上使用 pypy 安装 numpy

c# - 在 C# 中使用 p12 证书从 SFTP 下载文件

Ruby 代码有语法错误,意外的 keyword_end,期望输入结束

linux - 在 Bash 脚本和捕获输出时在后台使用与号 (&) 的 Fork 命令

objective-c - 基于 View 的 NSOutlineView 中奇怪的字体抗锯齿

Java SFTP (apache vfs2) - 密码带有 @

linux - 使用 at 运行带有标志的 .txt 文件或命令