如何使用 cp 复制以包含隐藏文件和隐藏目录及其内容?

如何使用 cp 复制以包含隐藏文件和隐藏目录及其内容?

我如何cp -r复制绝对全部目录中的文件和目录

要求:

  • 包括隐藏文件和隐藏目录。
  • 成为一个带有标志的单一命令来包含上述内容。
  • 根本不需要依赖模式匹配。

我的丑陋但有效的黑客方法是:

cp -r /etc/skel/* /home/user
cp -r /etc/skel/.[^.]* /home/user

如何在不使用模式匹配的情况下用一个命令完成所有这些操作?我需要使用什么标志?

答案1

不要指定文件:

cp -r /etc/skel /home/user

(请注意,/home/user一定不能存在,否则将创建/home/user/skel。)

答案2

假设你创建了新文件夹(或将要创建一个),并希望在创建文件夹后将文件复制到该文件夹

mkdir /home/<new_user>
cp -r /etc/skel/. /home/<new_user>

这会将所有文件/文件夹从中递归复制/etc/skel到第一行创建的已经存在的文件夹中。

答案3

正确的方法是使用该-T (--no-target-directory)选项,并递归复制文件夹(不带尾随斜杠、星号等),即:

cp -rT /etc/skel /home/user

这会将 的内容复制/etc/skel/home/user(包括隐藏文件),/home/user如果文件夹不存在,则创建该文件夹;但是,如果文件夹存在,该-T选项会阻止将 的内容/etc/skel复制到新文件夹。/home/user/skel/home/user

答案4

使用 rsync:

rsync -rtv source_folder/ destination_folder/

相关内容