共计 2109 个字符,预计需要花费 6 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章给大家分享的是有关怎么使用 CP / SCP / RSYNC 在 Linux 中排除特定目录的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
在本文中,我们将演示如何排除特定的文件或目录,或者使用用于此目的的三种最常用和广泛使用的实用程序 (即 rsync,cp 和 scp) 进行复制。使用 cp 命令排除特定文件 / 目录的复制:
考虑以下情形,其中我的当前工作目录中有五个目录。
[root@linuxnix tmp]# ls -ld dir* drwxr-xr-x 2 root root 6 Aug 29 22:47 dir1 drwxr-xr-x 2 root root 71 Aug 29 22:47 dir2 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir3 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir4 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir5
我想复制以名称 dir 开头的所有目录的内容,除了 dir2 目录,然后可以执行以下操作:
[root@linuxnix tmp]# cp -r `ls -A | grep dir| grep -v dir2 ` /tmp/sahil/
这将复制除 dir2 以外的所有 dir 目录。如果我们需要复制所有目录并跳过单个目录,则可以运行以下命令。
[root@linuxnix tmp]# cp -r !(dir2) /sahil
除目录 dir2 之外,当前工作目录中的所有目录和子目录都将复制到 / sahil 中。同样,如果我们要从当前工作目录中复制除一个文件以外的所有文件,请键入以下内容
[root@linuxnix dir2]# cp -r !(file3) /sahil
在上面的示例中,当前工作目录中的所有文件都被复制到 / sahil,除了名为 file3 的文件。
使用 scp 命令排除特定文件 / 目录被复制:
scp 中的数据排除机制与先前使用 cp 命令演示的类似。以下是一个示例。上面的命令从当前工作目录中复制了所有文件,除了名为 file4 的文件。
[root@linuxnix dir2]# scp -rp !(file4) 192.168.19.142:/sahil file1 100% 0 0.0KB/s 00:00 file2 100% 0 0.0KB/s 00:00 file3 100% 0 0.0KB/s 00:00 file5 100% 0 0.0KB/s 00:00 [root@linuxnix dir2]#
使用 rsync 命令排除特定文件 / 目录的复制:
在用于复制文件的命令集中,最灵活的是 rsync 命令。在本文中,我们将讨论范围限于排除某些文件 / 目录被复制的功能。要使用 rysnc 命令复制文件或文件夹,请使用 ndash;exclude 标志,如以下示例所示。
[root@linuxnix tmp]# rsync -av --progress --exclude= dir2 dir* /sahil sending incremental file list dir1/ dir3/ dir4/ dir5/ sent 82 bytes received 28 bytes 220.00 bytes/sec total size is 0 speedup is 0.00 [root@linuxnix tmp]# cd /sahil/ [root@linuxnix sahil]# ls -l total 0 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir1 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir3 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir4 drwxr-xr-x 2 root root 6 Aug 29 22:47 dir5 [root@linuxnix sahil]#
我们也可以在远程复制文件时使用 ndash;exclude 标志。以下是一个示例:
[root@linuxnix tmp]# rsync -av --progress --exclude= dir2 dir* 192.168.19.142:/sahil sending incremental file list dir1/ dir3/ dir4/ dir5/ sent 82 bytes received 28 bytes 220.00 bytes/sec total size is 0 speedup is 0.00 [root@linuxnix tmp]#
感谢各位的阅读!关于“怎么使用 CP / SCP / RSYNC 在 Linux 中排除特定目录”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!