在Ubuntu中,cp
(copy)命令用于复制文件和目录。如果你想复制整个目录及其内容,你需要使用-r
(recursive)选项。以下是一些使用cp
命令复制目录的技巧:
复制单个目录及其内容:
cp -r /path/to/source/directory /path/to/destination/directory
这将复制source
目录及其所有内容到destination
目录。如果destination
目录不存在,它将被创建。
复制多个目录: 如果你想复制多个目录到一个目标目录中,你可以这样做:
cp -r /path/to/source/directory1 /path/to/source/directory2 /path/to/destination/directory/
这将在destination
目录中创建两个新的子目录,分别包含directory1
和directory2
的内容。
保留文件属性:
使用-p
选项可以保留文件的属性,如所有者、权限和时间戳:
cp -rp /path/to/source/directory /path/to/destination/directory
交互式复制:
使用-i
选项可以在覆盖已存在的文件前提示用户:
cp -ri /path/to/source/directory /path/to/destination/directory
更新文件:
使用-u
选项只会复制那些比目标目录中的文件更新的源文件:
cp -ru /path/to/source/directory /path/to/destination/directory
限制复制深度:
使用--max-depth
选项可以限制复制的深度。例如,如果你只想复制顶层目录中的内容,可以这样做:
cp -r --max-depth=1 /path/to/source/directory/* /path/to/destination/directory/
排除特定文件或目录:
要排除某些文件或目录,你可以使用rsync
命令而不是cp
。rsync
提供了更复杂的选项来排除和包含文件:
rsync -av --exclude='*.log' /path/to/source/directory/ /path/to/destination/directory/
请注意,cp
命令不会递归复制符号链接指向的目录。如果你需要复制符号链接本身,你需要使用-d
选项:
cp -rd /path/to/source/symlink /path/to/destination/
在使用这些命令时,请确保你有足够的权限来读取源文件和写入目标目录。如果没有,你可能需要使用sudo
来获取必要的权限。