-
2019-02-13 05:07:10
其实linux有几个命令都是用于解压缩的。这里就举例unzip
例如在一个文件夹里你又许多.zip 文件,如1.zip, 2.zip, 3.zip ......。如果想把它们解压缩到同一个文件夹(举例名为unzipped),命令为:
unzip '*.zip' -d unzipped
*可以根据共同前后缀灵活运用。
但是这样我还是不满意。 在同一个文件夹后,解压做的1.zip, 2.zip等分别又给我建立了不同的子文件夹,比如说文件夹1,2,3. 如果能保证每个文件夹里的文件名字都不重合。那可以这样干,还以上面已经被命名为unzipped的文件夹举例,假设子文件夹都在unzipped里面,你可以选择合并后的名字,还叫unzipped或者其他的名字,这里就叫它unzipped2, 那你需要的命令就是下面的:
find unzipped -depth \( -type f -exec mv -i {} unzipped2 \; \) -o \( -type d -empty -delete \)
这样你就会建立一个叫unzipped2的文件夹。所有前面1.zip,2.zip里面的文件都被解压缩放进unzipped2里面了。
注意,如果你不同的子文件里有包含相同名字的文件,你需要额外的处理。这里我没有这个需求,所以我就贴个参考链接上来,有问题再来参考吧:
https://stackoverflow.com/questions/9314434/merging-sub-folders-together-linux
更多相关内容 -
linux复制文件到另一个文件夹或目录
2021-05-09 05:11:101. 前言本文主要讲解Linux系统如何使用命令行工具把文件复制到另一个文件夹或者目录。2. cp命令的选项和功能copy命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。...1. 前言
本文主要讲解Linux系统如何使用命令行工具把文件复制到另一个文件夹或者目录。
2. cp命令的选项和功能
copy命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
案例1:
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了
如果dir2目录不存在,则可以直接使用
[root@zcwyou ~]# cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
[root@zcwyou ~]# cp -r dir1/. dir2
如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的目录路径即可。
案例2:
复制指定文件到指定文件夹
首先建立一个用于测试的目录,用’tree’命令查看
可见,目录中主要包含用于测试的.txt文件和用于充当炮灰的。tes文件
目标是保持当前的目录结构,只把txt文件复制出来
本文将会以两种情况作案例说明。
比如要把A文件夹复制到B文件夹内。比如A内的文件是:
- A/
.hi.txt
a1.txt
shadow.json
- dir1/
dir1.txt
即A目录有 .hi.txt, a1.txt,shadow.json三个文件及一个子目录dir1,dir1里含有一个文件dir1.txt。
3. 案例1:把A文件夹内的所有文件复制到B文件夹内
我们的目标:复制操作后B文件夹的内容和原来A文件夹一样:
- B/
.hi.txt
a1.txt
shadow.json
- dir1/
dir1.txt
4. 案例2:把A文件夹本身复制到B文件夹内
操作目标:复制完成后,B文件夹的要包含原来的A文件夹:
- B/
- A/
.hi.txt
a1.txt
shadow.json
- dir1/
dir1.txt
5. 复制文件操作过程演示
第一种案例的命令,也就是把文件夹A中的所有内容复制到B文件夹中,即B与A的内容一样。
[root@zcwyou ~]# cp -a A/. B
第二种案例的命令,也就是把文件夹A中的所有内容复制成B文件夹中,即B包含A的所有内容。
[root@zcwyou ~]# cp -a A B
需要解释的点:
-a是一个符合参数,代表-pPR,可以简单这样理解:“支持所有子文件并且保留文件属性”,推荐加上这个选项。
上面两者的却别就是A后加了个/.,如果不加/.,A本身作为一个完整的文件夹被复制到了目标文件夹内。如果加了/.,则代表A文件夹内的所有文件被复制到目标文件夹内。注意这种/.是cp命令本身专有的代表所有文件的方式,如果你使用A/*,cp不会复制隐藏文件(以.开头的文件)。
6. 只复制指定文件的方法
继续上面的例子,A文件夹:
- A/
.hi.txt
a1.txt
shadow.json
- dir1/
dir1.txt
如果想要复制指定文件,可以在文件夹后面加入筛选字符,比如,筛选所有的.txt:
[root@zcwyou ~]# cp -a A/*.txt B
执行完毕后,B目录是:
- B/
a1.txt
需要注意的问题:
不会匹配子文件夹里的文件。
不会匹配隐藏文件(以.开头的文件)。
-a参数上面有说明。
7. 一次复制指定指定的多个文件
cp同时也支持手动指定多个文件,继续上面的例子,A文件夹:
- A/
.hi.txt
a1.txt
shadow.json
- dir1/
dir1.txt
执行cp:
[root@zcwyou ~]# cp -a A/.hi.txt A/dir1/dir1.txt B
执行完毕后,B目录是:
- B/
.hi.txt
dir1.txt
需要注意的问题:
dir1.txt会被放在根目录,也就是源文件夹内的子目录不会被保留。
-a参数上面有说明。
8. 复制时强制覆盖原文件
cp默认会立即覆盖目标文件(如果存在的话),不做任何提示。
如果想要cp在覆盖文件前做提示,请使用-i命令,即cp -i,示例:
覆盖文件前做提示
[root@zcwyou ~]# cp -i -a documents/. backup/
如果出现没有加-i参数,但cp仍然会提示覆盖的问题(比如会提示类似这种消息:cp: overwrite dir/a.txt?)。可能是cp命令被别名化,请使用\cp来运行命令。
强制不允许覆盖文件前提示
[root@zcwyou ~]# \cp -a documents/. backup/
9. 总结
cp命令是Linux系统里最最为常用的命令,系统运维者必须掌握它的所有功能和语法。linux复制文件到另一个文件夹或目录更是最常用的功能之一。
-
Linux环境下移动一个文件夹下的所有文件到另一个文件夹
2021-06-24 16:23:48最近需要把一个环境里的文件,迁移到另一个环境里去,迁移之前我先做了文件备份,然后网上查了下命令。 研究命令 #移动a文件夹下的所有文件到b文件夹 mv /a/* /b 但是如果有重名的子文件夹或者文件的话,这个命令...Linux环境下移动一个文件夹下的所有文件到另一个文件夹
研究命令
最近需要把一个环境里的文件,迁移到另一个环境里去,但是两个环境里的数据会有一些同名的子目录,要求不能覆盖数据而是合并,迁移之前我先做了文件备份,然后网上查了下命令。
#移动a文件夹下的所有文件到b文件夹 mv /a/* /b
但是如果有重名的子文件夹或者文件的话,这个命令会一直提示是否需要overwrite
然后我查到#强制移动a文件夹下的所有文件到b文件夹,如果有重复会备份文件 mv -fb /a/* /b
查询问题
命令很快执行完,我以为任务完成了,后面测试反馈有些文件找不到,我就去找问题,发现有些目录被覆盖掉了。
如下图所示,上面的命令如果有相同的目录,会生成同名文件夹然后加一个~
后面我发现执行这个命令,如果有同名子目录,a文件夹里的子目录会把之前b文件夹里的同名子目录覆盖掉。
比如:
a文件夹下子目录结构如下
b文件夹下子目录结构如下
执行上面的命令,wangdongqin/2021就变成a文件夹下的结构只有2一个子目录了,把之前b文件夹下的子目录全覆盖了。
这样肯定不符合我的需求,还好我在mv参数上加了-b,生成了备份文件。
解决问题
然后我咨询运维人员,得到了新的命令
#强制移动a文件夹下的所有文件到b文件夹,如果有重复会备份文件 rsync -azvr wangdongqin~/ wangdongqin/ -a选项,它保留了所有人和所属组、时间戳、软链接、权限,并以递归模式运行。 -z来启用压缩。 -v是可视化。 -r是递归。
再用diff命令来对比两个文件夹是否有差别
diff -r wangdongqin~/ wangdongqin/
发现没有问题了,两个目录的文件完全合并了,而不是覆盖。
然后删除重复的 ~文件夹
find ./ -type d -name '*~'| xargs rm -rf
总结
做任何操作之前一定要备份数据,然后不熟悉的命令最好先测试下效果,然后遇到问题,自己解决不了,可以去求助一下专业人士。
-
如何解压文件夹下的子文件到同一个文件夹
2019-12-11 15:44:38第一步:选择要解压的压缩包 第二步:点击鼠标右键,选择解压文件 第三步:在弹出来的窗口,高级选项里面,把不要提取路径选上,然后点击确定 结果: ...第一步:选择要解压的压缩包
第二步:点击鼠标右键,选择解压文件
第三步:在弹出来的窗口,高级选项里面,把不要提取路径选上,然后点击确定
结果:
-
java 把指定文件夹下的所有文件目录和文件都压缩到指定文件夹下
2016-10-27 17:22:08将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 -
java压缩文件夹递归实现将多个文件夹压缩在同一个zip包
2020-08-17 09:13:58该方法递归实现将多个文件夹压缩在同一个zip包中 然后删除文件夹directoryName 下需要被压缩的文件。 package com.chuangqi.tools; import java.io.File; import java.io.FileInputStream; import java.io.... -
C#实现将文件、文件夹压缩为压缩包
2021-07-16 22:00:30一、C#实现将文件、文件夹压缩为压缩包核心 /*** * Title:"基础工具" 项目 * 主题:压缩包帮助类 * Description: * 功能:【该压缩方法来自:https://www.cnblogs.com/Chary/p/No0000DF.html】 * 1、创建 ... -
PHP压缩一个文件夹里面所有的文件,多文件混合压缩
2016-11-19 10:59:12PHP压缩一个文件夹里面所有的文件,多文件混合压缩。 本函数可以接受多个源文件(或文件夹)同时压缩。 function createZip($from, $to)。 PHP文件夹打包,以供下载 -
批量将很多文件夹打包压缩成多个ZIP和7z压缩包文件
2022-04-07 10:22:10概要:我们有时候需要将很多不同类型的文件夹单独打包成一个 ZIP 压缩包或者单独的打包成一个 7z 压缩包,我们一个一个处理的话比较慢,但是有没有一种批量将文件夹转成 ZIP 和 7z 压缩包的方法呢? 我们有很多... -
linux++压缩多个文件夹
2021-05-09 08:18:36这里讨论使用Python解压如下五种压缩文件:.gz .tar .tgz .zip .rar简介gz: 即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。tar: linux系统下的打包工具,只打包,不压缩tgz:即tar.gz。... -
Ubuntu新手指南--压缩一个文件夹中所有文件
2019-11-23 13:44:231、打开要压缩的文件夹,右键终端打开;2、输入压缩命令: tar -zcvf 3、输入输出的压缩文件名,例如:ll.tar.gz。然后在后面输入【*】星号就是所有文件...4、回车,那么即可压缩,当前目录有个压缩文件。 ... -
Java实现将文件或者文件夹压缩成zip
2022-01-05 12:57:46这个工具类的功能为: 1 . 可以压缩文件,也可以压缩文件夹...5. 代码中提供了2个压缩文件的方法,一个的输入参数为文件夹路径,一个为文件列表,可根据实际需求选择方法。 package com.tax.core.util; import java.io -
linux使用gzip批量压缩某个文件夹下的文件
2021-12-01 15:47:44gzip怎样将某个文件夹下的文件批量压缩到目标文件夹下,同时保留原始文件 -
linux命令五十七之tar命令;linux多个文件压缩打包到一个压缩文件
2020-12-04 16:00:10tar命令 ...多个文件压缩打包 tar czvf my.tar.gz file1 file2,…(file*)(也可以给file*文件mv 目录在压缩) 单个目录压缩打包 tar czvf my.tar.gz dir1 多个目录压缩打包 tar czvf my.tar.gz dir1 -
linux压缩解压缩文件夹或文件命令详解
2021-12-09 11:05:33一、压缩当前目录下的文件夹或者文件app到app.tar tar -cvf app.tar app 二、解压缩当前目录下的压缩包app.tar到app tar -xvf app.tar 三、不解压的情况下查看压缩包里的内容 tar -tf app.tar 四、参数详解 1、必... -
python压缩文件夹内所有文件为zip文件的方法
2020-12-02 15:54:57python压缩文件夹内所有文件为zip文件的方法本文实例讲述了python压缩文件夹内所有文件为zip文件的方法。分享给大家供大家参考。具体如下:用这段代码可以用来打包自己的文件夹为zip,我就用这段代码来备份import ... -
解压缩文件:压缩(zipped)文件夹错误,拒绝访问
2022-07-11 13:06:11解压缩文件的时候出现:压缩(zipped)文件夹错误,拒绝访问。 解决办法:用管理员身份打开。我的电脑解压缩软件是 7-zip,直接压缩包右键是无法以管理员身份打开的。正确做法是:找到 7-zip 软件,右键以管理员身份... -
linux 压缩当前文件夹下所有文件
2020-08-28 14:50:55linux zip压缩。压缩当前文件夹下所有文件,压缩为a.zip。...多个文件压缩打包 tar czvf my.tar file1 file2,… 单个目录压缩打包 tar czvf my.tar dir1 多个目录压缩打包 tar czvf my.tar dir1 dir2 解包至当前目 -
用7z命令压缩多个文件夹和文件
2020-11-10 11:53:36《用7z命令压缩文件夹》 https://blog.csdn.net/cpdoor2163_com/article/details/109580529 修改出新的压缩命令,CompressCommand2.bat,的内容: :: For compress, set source folder, target folder and target ... -
linux的tar命令详情;linux多个文件压缩打包到一个压缩文件
2020-06-21 20:13:11tar命令 可以用来压缩打包单文件...多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file*)(也可以给file*文件mv 目录在压缩) 单个目录压缩打包 tar czvf my.tar.gz dir1 多个目录压缩打包 tar czvf my.t -
tar压缩和解压文件或文件夹
2018-08-21 16:08:06该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz 如果不需要压缩成gz,只需要后缀为tar格式的,那么输入如下命令: tar -cvf test.tar ./test/ 2. 使用tar解压文件 tar -xzvf test.tar.... -
如何在 Linux 中 zip 压缩文件和文件夹
2020-12-06 12:05:46使用 zip,你可以将多个文件压缩到一个文件中。这不仅节省了磁盘空间,还节省了网络带宽。这就是为什么你几乎一直会看到 zip 文件的原因。 作为普通用户,大多数情况下你会在 Linux 中解压缩文件夹。但是如何在 ... -
Linux下压缩文件夹
2021-09-10 11:01:09例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的目录路径] 解压 unzip xahot.zip 不解释 ... -
linux 解压缩一个文件夹下所有的压缩文件
2019-03-26 21:09:38转载自: https://blog.csdn.net/huplion/article/details/81121655?utm_source=blogxgwz9 -
Linux下压缩文件夹命令使用
2021-05-09 03:25:19网站或者应用数据愈来愈大...TAR压缩tar -zcvf /data/backup.tar.gz /wwwroottar -zcvf 打包后生成的文件名全路径 要打包的目录以上的例子:把/wwwroot文件夹打包后生成一个/data/backup.tar.gz的文件。ZIP压缩压缩... -
python3 压缩文件夹为zip文件和解压缩zip文件至指定文件夹
2021-01-15 11:14:37压缩文件夹至同名zip文件 """ file_news = filedir + '.zip' z = zipfile.ZipFile(file_news,'w',zipfile.ZIP_DEFLATED) #参数一:文件夹名 for dirpath, dirnames, filenames in os.walk(filedir): fpat -
pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中
2013-09-29 08:42:29在pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中,不要rar的,求高手 -
Python —— 压缩文件夹
2021-08-17 23:41:15Python —— 压缩文件夹 目标:压缩指定文件夹为zip文件 适用场景:批处理文件,定时打包并发送至指定用户邮箱 python脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- """ @Author :xxxxx @... -
Java 压缩文件夹
2021-12-17 23:02:02本文只针对压缩文件夹(不用于压缩文件,若需要,自行更改) public class ZipTool { File f0; //被压缩的目标 File f1; //压缩后的目录及文件名 public ZipTool(File f0, File f1) { this.f0 = f0; this.f1 = f1; ...