【发布时间】:2015-10-15 13:33:03
【问题描述】:
我使用这一行尝试将目录中的所有文件拆分为较小的文件并将它们放入新目录中。
cd /path/to/files/ && find . -maxdepth 1 -type f -exec split -l 1000 '{}' "path/to/files/1/prefix {}" \;
结果是“找不到文件”,那么我该如何进行这项工作,以便将目录中的所有文件拆分为更小的 1000 行文件并将它们放置在新目录中?
稍后...
我尝试了很多变体,但都不起作用。我阅读了另一篇拆分无法对多个文件进行操作的文章。我是否需要制作一个 shell 脚本,或者我该怎么做?
我有一个使用循环的好主意。所以,我研究了“for”循环,结果如下:
for f in *.txt.*; do echo "Professing $f file..."; split -l 1000 $f 1split.ALLEMAILS.txt. ; done
.txt. 位于工作目录的所有文件中。 'echo' 命令是可选的。对于“split”命令,我没有命名一个文件,而是用“for”行定义的 $f 替换了它。
我唯一想做的就是将所有这些移动到命令中的另一个目录。
现在,我被困在移动所有匹配文件的 find 命令上。这是我到目前为止所做的但不起作用:
find . -type f -name '1split.*' -exec mv {} new/directory/{} \;
我收到错误“不是目录”;或者我试过了:
find . -type f -name '1split.*' -exec mv * . 1/ \;
我得到'没有这样的文件或目录'
有什么想法吗?
我发现此命令将所有文件移动到新目录,而不是专门满足条件“1split.*”的文件
【问题讨论】: