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 ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |