加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 将多个文件移动到保留路径的新目录

发布时间:2020-12-16 01:58:27 所属栏目:安全 来源:网络整理
导读:我想将一些文件从当前目录移到一个新文件,同时保留它们的原始路径(例如/ example / appc应该移动到/newdir/example/app1/main.c). 我通过创建了所有必要的目录.下列: git ls-files --others | awk -F '/' '{print "/home/user/newdir/"$1"/"$2}' | xargs mk
我想将一些文件从当前目录移到一个新文件,同时保留它们的原始路径(例如/ example / appc应该移动到/newdir/example/app1/main.c).

我通过创建了所有必要的目录.下列:

git ls-files --others | awk -F '/' '{print "/home/user/newdir/"$1"/"$2}' | xargs mkdir -p

但我不确定如何强制mv在确定新位置时使用git ls-files –others目录路径.

解决方法

我通常这样做的一种方法是使用tar,因为它非常擅长保存文件.

tar -c -f - $(git ls-files --other) | tar -x -f - -C /newdir && git clean -df

或类似的东西应该是你想要的.第一个tar在stdout上创建一个tar,由第二个读取;第二个将它提取到目的地.之后,我们需要删除文件,因此git干净.

请注意,如果您有许多文件,则可以将第一个tar拆分为两部分:

git ls-files > /tmp/files && tar -c -f - -T /tmp/files ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读