我无法完成这项工作:
find /var/lib/vz/dump -maxdepth 1 -type f -size +25G -exec split --bytes=30G /splittedfiles/ {} {} \;
没有/ splittedfiles /它运行正常。但我想将拆分文件放在不同的文件夹中。
答案 0 :(得分:1)
前缀必须在要拆分的文件名后面。这意味着您需要使用:
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 {} +
并且split-script.sh
将处理位置和技巧,例如在/path/to/split/files/
之后使用文件的基本名称。这种shell脚本不必持续很长时间 - 一旦你运行这个工作就可以删除它。
for file in "$@"
do
split -b 30G "$file" "/path/to/split/files/$(basename "$file")."
done
(最后的.
将基本名称与aa
等后缀分开。)