shell - [Unix][Shell 脚本] 将一个文件夹中的所有文件复制到另一个文件夹
问题描述
我正在尝试为日常 cronjob 创建一个 bash shell 脚本。
该脚本是将所有带有txt扩展名的文件(包括子目录)从文件夹“fromDir”复制到文件夹“toDir”。
如果它不存在,它也会创建“toDir”目录。
我在这里尝试使用 tar 压缩文件并在移动后解压缩以加快传输过程中花费的时间,目标文件夹应该与原始文件夹具有完全相同的结构。
#!/bin/bash -l
fromDir='c:/fromFolder/' ;
toDir='c:/toFolder/' ;
find $fromDir -maxdepth 3 -name '*.txt' -print |
tar zcvf - -T - |
mkdir -p -m 777 $toDir ;
cd $toDir && tar zxvf -
解决方案
第一次看到我的评论,那么如果你tar
不支持-C
论点(在 tar 之前更改为 dir),你可以试试这个:
#!/bin/bash
fromDir='c:/fromFolder/' ;
toDir='c:/toFolder/' ;
mkdir -p -m 777 $toDir ;
find $fromDir -maxdepth 3 -name '*.txt' -print |
tar zcf - -T - | (
cd $toDir
tar zxvf -
)
推荐阅读
- mongodb - 从 mongodb 获取信息的问题
- firebase - 带角度的 Firebase:创建用户失败
- java - 删除 ResutSet 缓存数据
- python - 如何让 tormysql 进行插入?
- rest - 对象属性的 JFrog Artifactory API 查询不返回请求的详细信息
- java - 数组解析java中的android api json数组
- android - 为什么 Dagger2 注入相同的对象但有 2 个不同的实例?
- javascript - 无法在 html5 中播放广播源
- python - 从 Python 中的 DataFrame 更新 sql 中的一列
- php - 连接到 Amazon RDS 后 Mysql 创建表时出错