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后缀分开。)