Linux 查找并拆分命令,但结果是另一个目录?

Linux 查找并拆分命令,但结果是另一个目录?,linux,shell,split,Linux,Shell,Split,我不能得到这份工作: find /var/lib/vz/dump -maxdepth 1 -type f -size +25G -exec split --bytes=30G /splittedfiles/ {} {} \; 没有/splittedfiles/运行正常。但是我想将拆分的文件放在另一个文件夹中。前缀必须在要拆分的文件名之后。这意味着您需要使用: find /var/lib/vz/dump -maxdepth 1 -type f -size +25G \ -exec s

我不能得到这份工作:

find /var/lib/vz/dump -maxdepth 1 -type f -size +25G -exec split --bytes=30G /splittedfiles/  {} {} \;

没有/splittedfiles/运行正常。但是我想将拆分的文件放在另一个文件夹中。

前缀必须在要拆分的文件名之后。这意味着您需要使用:

find /var/lib/vz/dump -maxdepth 1 -type f -size +25G \
     -exec split --bytes=30G {} /path/to/split/files/ \;
{}
是要拆分的文件名。写入的拆分文件路径将在指定目录中创建类似
aa
的名称。 主要的障碍是第二个分割文件将覆盖第一个文件的分割数据。这是一个问题,在
find
命令行上不容易解决。如果我要这样做,我会安排使用:

… -exec split-script.sh {} +
splitscript.sh
将处理位置和技巧,比如在
/path/to/split/files/
之后使用文件的基本名称。这种shell脚本不必持续很长时间——运行此作业后可以删除它

for file in "$@"
do
    split -b 30G "$file" "/path/to/split/files/$(basename "$file")."
done
(末尾的
将基本名称与
aa
etc后缀分开。)