我希望将仅包含这些文件的目录内的所有文件(所有文件都是常规文件 - 该目录内没有目录、符号链接等)复制到另一个预先存在的目录。
这些文件具有非常常见的名称,例如robots.txt,并且不遵循任何特定模式。
我尝试了类似的命令:
cp -a "$HOME"/a "$HOME"/b
Run Code Online (Sandbox Code Playgroud)
我知道这-a是一个快捷组合-d(保留模式、所有权和时间戳)以及-R命令递归复制。
如果复制是递归的,为什么不复制文件以及解决方案是什么?
应用场景:
目录a存在但b不存在:
cp -a "$HOME"/a "$HOME"/b
Run Code Online (Sandbox Code Playgroud)
将整个目录复制a到一个新目录b
目录a和b存在:
cp -a "$HOME"/a "$HOME"/b
Run Code Online (Sandbox Code Playgroud)
将复制目录内a 的b目录。所以你会得到一个"$HOME"/b/a目录。
目录a和b存在:
cp -a "$HOME"/a/* "$HOME"/b
Run Code Online (Sandbox Code Playgroud)
将复制内部目录的内容,但排除隐藏文件和目录。虽然某些 shell 有一些包含它们的选项,但最好的方法是:a b
cp -a ~/a/. ~/b/
Run Code Online (Sandbox Code Playgroud)
这就是我理解你想要的。