【问题标题】:How to copy files from X sub_dir to Y sub_dir如何将文件从 X sub_dir 复制到 Y sub_dir
【发布时间】:2016-03-02 12:32:08
【问题描述】:

我有主目录 X,在里面我有很多子目录,比如 A、B、C、D。 我有主目录 Y,在其中我有许多与 X 主目录子目录同名的子目录,例如 A、B、C、D。

现在我需要将所有文件从 X 主目录子目录移动到 Y 主目录子目录。

例如:

主目录X里面,子目录A有100个文件

B 有 1 个文件

C 有 5 个文件

而 D 有 50 个文件...

我的光标应该在 main DIR X ,从那里我需要将所有子目录文件移动到 Y 主目录内的同名子目录(A、B、C、D)。

如何在 SHELL SCRIPTING(KSH) 或 unix 中执行此操作??

【问题讨论】:

  • 你试过cp -r */ ../Y/ 吗?
  • cp 命令工作正常。相同的逻辑如何与 MV 命令一起使用???
  • 嗨 Walter...你能帮忙解决这个 mv 命令吗?
  • 注意:mv 问题最终被问到here

标签: shell unix ksh


【解决方案1】:

首先,您应该习惯您的 unix 环境。 Unix 命令可以非常强大,逐步习惯它,不要接受你不理解的建议。我将在此处提供的链接包含精美的信息,但首先尝试学习基础知识。不要调用当前目录或 homedir 光标,习惯小写字符以及如何在临时目录中学习新命令。 首先,您询问了副本。 man cp 或谷歌unix copy 应该会给你很多信息。要从 dir $HOME/a 复制到 dir $HOME/b,请使用

# go to $HOME dir
cd
# copy dirs not files including subdirs
cp -r a/*/ b

当 dir 为 b 为空时移动所有内容

cd
mkdir b
mv a/* b

当 b 已经有一些子目录时,移动文件更困难。 mv 不用于合并。当b的现有内容是旧的时,最简单的方法是先删除b

cd
rm -r b/*
mv a/* b/

当你想将文件保存在 b 中时,查看类似的链接

mv equivalent rsync command
https://unix.stackexchange.com/questions/43957/using-rsync-to-move-not-copy-files-between-directories
以及
https://unix.stackexchange.com/questions/9899/how-to-overwrite-target-files-with-mv

上的精彩答案

【讨论】:

  • 好消息;备注cp -r;最好使用-R,因为BSD cp 在其man 页面中声明:Historic versions of the cp utility had a -r option. This implementation supports that option; however, its use is strongly discouraged, as it does not correctly copy special files, symbolic links, or fifo's.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多