首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux bash脚本中有足够的空间时复制文件

在linux bash脚本中有足够的空间时复制文件
EN

Stack Overflow用户
提问于 2017-03-29 09:09:46
回答 1查看 2K关注 0票数 4

我想要创建一个简单的bash脚本,它可以将数据文件从源目录复制到tmpfs ramdrive。我需要这个脚本是有效的,所以它不是一个选项,试图复制和检查结果代码的复制命令(我假设复制命令将开始复制和失败时,只有在没有空格。当没有足够的空间时,我想避免开始复制)。这里是伪代码:

代码语言:javascript
复制
for filename in /data/*.dat; do
    bname="$(basename $filename)"
    ramname="/ramd/$bname"
    if there is not enough space for $filename on ramdrive then
        break
    cp $filename $ramname
done

你能不能建议换一张如果-断续表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 09:36:06

您可以使用POSIXdf -报告空闲磁盘空间du -估计文件空间的使用情况定义的选项来实现这一点,前者带有-P标志,用于报告系统上可用的可用空间,并使用awk解析出块大小,并在du中使用-k标志对文件执行同样的操作。

代码语言:javascript
复制
availMem=$(df -P "$ramname" | awk 'END{print $4}')
fileSize=$(du -k "$filename" | awk '{print $1}')

if (( fileSize > availMem )); then
    break
fi

(或)不带POSIX-ly整数比较的

代码语言:javascript
复制
if [ "$fileSize" -gt "$availMem" ]; then
    break
fi

您还可以在调试purose的printf之前添加一个break

代码语言:javascript
复制
printf "Requesting %s for copy when there is only %s left\n" "$fileSize" "$availMem" 
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43089136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档