加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

cygwin – ls或dir – 限制文件名返回的数量

发布时间:2020-12-14 01:21:57 所属栏目:Linux 来源:网络整理
导读:有没有办法限制使用ls或dir命令返回的文件名数?我在使用cygwin的 windows机器上,所以任何一个命令都可以. 我有一个超过100万个文档的目录,我需要批量处理到子文件夹中.我正在寻找一个简单的脚本,列出前20,000个左右,将它们移动到子文件夹,然后重复下一个20,
有没有办法限制使用ls或dir命令返回的文件名数?我在使用cygwin的 windows机器上,所以任何一个命令都可以.

我有一个超过100万个文档的目录,我需要批量处理到子文件夹中.我正在寻找一个简单的脚本,列出前20,000个左右,将它们移动到子文件夹,然后重复下一个20,000.我希望ls或dir可以选择只列出一定数量的文件,但我似乎找不到办法.

我的另一个选择是将文件名打印到文本文件并解析它以进行移动.似乎应该有一个更简单的解决方案.

解决方法

如果你使用cygwin,你应该能够使用head命令,如下所示:

ls | head -20000

列出前2万.

如果要在1命令行中移动批处理,这样的事情应该有效:

ls | head -20000 | xargs -I {} mv {} subdir

(其中subdir是您要将文件移动到的子目录).

首先运行此命令(使用echo命令)以验证它在运行实际移动之前是否有效:

ls | head -20000 | xargs -I {} echo mv {} subdir

但要小心,因为你要将文件移动到子目录中,因为“ls”命令也可能会提取你的子目录.

如果它们都是txt文件,你可以这样做:

ls | grep txt$| head -20000 | xargs -I {} mv {} subdir

获取以txt结尾的文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读