设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
如何在递归复制文件时排除特定的文件扩展名? ...
返回列表
发新帖
如何在递归复制文件时排除特定的文件扩展名?
[复制链接]
|
主动推送
26
|
0
|
2024-9-11 14:57:37
|
显示全部楼层
|
阅读模式
你可能已经知道,'cp'是Linux服务器中复制文件和目录的命令行程序。'cp'最简单、最常用的用法如下:
$ cp file1 file2 file3... fileN target_folder/
请注意,以上命令适用于文件以及“空”文件夹。它不适用于包含某些内容(文件或子文件夹)的文件夹。
要复制这样的文件夹,我们可以指定'-r'(递归)标识。
$ cp -r folder1 / folder2 / file1 file2 target_folder /
递归复制意味着复制文件夹下面的整个文件夹结构,即子文件夹和其中的文件,子文件夹内的子文件夹和其中的文件等。
这样就会复制所有的文件,而在'cp'命令内,没有办法根据某些参数来排除部分文件。例如,用户可能希望递归复制所有文件,除了子文件夹中的MP3(音频)文件之外,一直往下复制层次结构。
查找除特定文件扩展名以外的所有文件
为了达到这个目的,我们使用find命令,这是一个命令工具,简单来说就是根据文件或文件夹的参数:文件名、扩展名、大小等来搜索Linux中的文件和文件夹。
同理,在find命令中也有通过指定哪些文件应该被排除的方式来搜索文件。使用find定位特定扩展名的文件的语法是。
$ find -name '*.'
例如,以递归方式定位当前文件夹中的所有MP3文件。
$ find . -name "*.mp3"
现在,要找到文件夹和子文件夹中的所有文件,除了MP3文件,使用find的 "否定 "操作符。
$ find . ! -name "*.mp3"
我们可以看到,现在除了MP3文件之外,所有的东西都被显示出来了,但是我们只想显示文件,因为这个输出以后会输入到'cp'。然而,我们只想显示文件,因为这个输出将在以后被输入到'cp'。现在,它同时显示文件和文件夹(例如'temp1/'),这将导致相同文件的重复拷贝。
要从输出中删除文件夹,只需使用参数'-type f'。这里'f'代表一个文件。
$ find . -name '*.mp3' -type f(f)
这样,我们现在只有递归获得的文件在'test'文件夹中。现在,我们可以继续将这个输出用管道传送到'cp'命令中。
递归复制文件时排除特定的文件扩展名
为此,我们使用'xargs'命令使'cp'将'find'的输出作为参数。另外,我们使用'-t'标识来指定目标目录,如果没有这个标识,程序就会将'find'的输出视为目标目录。
$ find ! -name '*.' -type f | xargs cp -t
示例:
$ find . ! -name '*.mp3' -type f | xargs cp -t Misc/
因此,除了".mp3 "文件外,所有递归找到的文件都被复制到了 "Misc "文件夹中。
在本文中,我们学习了如何在Linux服务器中递归复制文件,同时排除特定扩展名的文件。此外,还可以看看如何递归复制特定扩展名的文件。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
素色流年783
102
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装