仅复制Linux文件夹结构 (linux 只复制文件夹结构)

在日常的运维工作中,我们经常需要将一些文件夹结构从一个Linux服务器上复制到另一个Linux服务器上,但是并不需要复制其中的文件内容。如果手动操作,可能会非常繁琐且浪费时间,那么如何简便快捷地完成这个任务呢?

本文将介绍几种常见的方法来复制Linux文件夹结构。

方法一:使用rsync命令

rsync命令是一个非常强大的Linux数据同步工具,它能够快速、安全地将源服务器上的文件同步到目标服务器上。

要仅复制文件夹结构,可以使用rsync的-d选项,该选项会让rsync仅复制目录,而不会复制目录中的文件。具体命令如下:

rsync -av –progress –exclude=’*.*’ /path/to/source/destination/ /path/to/target/destination/

其中,-a表示递归复制目录,-v表示显示详细输出,–progress表示显示传输进度,–exclude表示排除所有文件,只复制目录。

方法二:使用find命令

find命令是一个强大的Linux命令,它能够依据各种条件搜索文件和目录,并执行相应的操作。

要仅复制文件夹结构,可以使用find命令来搜索要复制的目录,并将搜索到的目录结构导出到一个文本文件中,然后使用xargs和mkdir -p命令创建目录结构。

具体命令如下:

find /path/to/source/destination/ -type d -printf ‘%P\n’ > dirs.txt

cat dirs.txt | xargs -I {} mkdir -p /path/to/target/destination/{}

其中,find命令的-type d选项表示只搜索目录,-printf ‘%P\n’表示将搜索到的目录结构输出到一个文本文件中,cat命令将文本文件的内容输出到终端窗口,xargs命令则将文本文件的内容逐行作为参数传递给mkdir命令,以创建目录结构。

方法三:使用tar命令

tar命令是常用的打包和归档命令,可以将目录和文件打包成一个单独的文件,并压缩成.tar.gz或.tar.bz2等格式。

要仅复制文件夹结构,可以使用tar命令先将目录结构打包,然后将打包文件复制到目标服务器上,再使用tar命令解压缩文件即可。

具体命令如下:

tar -cf dirs.tar /path/to/source/destination/

scp dirs.tar user@target_server:/path/to/target/destination/

ssh user@target_server “cd /path/to/target/destination/ && tar -xf dirs.tar”

其中,tar -cf命令将目录结构打包成一个名为dirs.tar的文件,scp命令将打包文件复制到目标服务器上,ssh命令连接到目标服务器并执行解压缩命令,即cd到目标目录,并通过tar -xf命令解压缩dirs.tar文件。

本文介绍了三种常见的方法来,每种方法都有其优缺点,可以根据实际需求选择最适合的方法。

使用rsync命令,可以快速安全地同步源服务器上的文件目录到目标服务器上;使用find命令,可以搜索要复制的目录,然后使用xargs和mkdir命令创建目录结构;使用tar命令,可以将目录结构打包成一个文件,并复制到目标服务器上,在目标服务器上使用tar命令解压缩文件。

无论使用哪种方法,都可以快速、简便地复制文件夹结构,提高运维效率,减少工作负担。

相关问题拓展阅读:

linux操作系统中 拷贝目录的命令是什么?

在linux系统中复制文件我们可以使用cp或copy命令了,我们要复制文件或目录都可以使用它们两来完成哦,下面我来给大家介绍cp或copy命令与复制目录到指定目录的命令吧。     copy命令     该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。   

语法: cp 源文件或目录 目标文件或目录     说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。     

该命令的各选项含义如下:a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等游闷于dpR选项的组合。d 拷贝时保留链接。f 删除已经存在的目标文件而不提示。i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。l 不作拷贝,只是链接文件。     

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,更好使用i选项。     

例1     复制指定目录下的全部文件到另一个目录中     文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。     假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了     如果dir2目录不存在,则可以直接使用     cp -r dir1 dir2     即可。     如果dir2目录已存在,则需要使用     cp -r dir1/. dir2     如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。     ps:dir1、dir2改成对应的目录路径即可。     

例2     复制指定文件到指定文件夹     首先建立一个用于测试的目录,用’tree’命令查看其结构如下所示:可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*。tes文件     目标是保持当前的目录结构,只把txt文件复制出来     

方法一:当不需要的文件类型较神耐弯为单一时,可以通过完全复制然后删除指定类型的文件完成     Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2,此时树形结构如下图Step2 组合使用find及xargs,将*.tes文件删除     xargs是给命令传递参数的一个过滤器,可以将前一个命令产生的输出作为后一个命令的参数     命令find test2/ -name ‘*.tes’ |xargs rm -rf, 即将find产生的输出(test2目录下的所有tes文件),作为rm的参数,从而完全删除     实际效果如图所示适用场景举例:把项目文件备份,要去除其中的.svn文件,可以采用这种方式     

linux 只复制文件夹结构的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 只复制文件夹结构,仅复制Linux文件夹结构,linux操作系统中 拷贝目录的命令是什么?的信息别忘了在本站进行查找喔。


数据运维技术 » 仅复制Linux文件夹结构 (linux 只复制文件夹结构)