我希望将仅包含这些文件的目录内的所有文件(所有文件都是常规文件 - 该目录内没有目录、符号链接等)复制到另一个预先存在的目录。
这些文件具有非常常见的名称,例如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)
这就是我理解你想要的。