iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux shell怎么进行文件解压,复制和移动
  • 739
分享到

Linux shell怎么进行文件解压,复制和移动

2023-06-30 13:06:45 739人浏览 八月长安
摘要

本篇内容介绍了“linux shell怎么进行文件解压,复制和移动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将文件单个地进行压

本篇内容介绍了“linux shell怎么进行文件解压,复制和移动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

将文件单个地进行压缩与解压

Linux下压缩文件的常见扩展名包括.gz.tar.tar.gz.zip等。这些压缩格式都能够跨平台(windows/Mac/Linux)使用。下面我们以.zip文件为例子来讲解。我们已知一个文本文件压缩包test.zip,想把它解压,很简单,运行unzip命令即可:

orion-orion@MacBook-Pro Learn-Linux % unzip test.zip ArcHive:  test.zip  inflating: test.txt

如果我们想要将test.txt重新压缩呢?你可能情不自禁会执行zip test.txt,然后我们发现提示:

orion-orion@MacBook-Pro Learn-Linux % zip test.txt           zip warning: missing end signature--probably not a zip file (did you        zip warning: remember to use binary mode when you transferred it?)        zip warning: (if you are trying to read a damaged archive try -F)zip error: Zip file structure invalid (test.txt)

其实是传参数传错了,导致zip误把test.txt当成压缩后的文件名了,这当然不是合法的。我们看zip的参数构成:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

[-b path]是压缩后的.zip文件的路径,zipfile list是待压缩的文件列表。于是,我们这样写即可成功压缩:

orion-orion@MacBook-Pro Learn-Linux % zip test2.zip test.txt  adding: test.txt (stored 0%)

当然,zip也支持将多个文件压缩:

orion-orion@MacBook-Pro Learn-Linux % zip test3.zip test.txt test2.txt   adding: test.txt (stored 0%)  adding: test2.txt (stored 0%)

此时我们发现再解压test3.zip会发现重新得到了两个原始文件:

orion-orion@MacBook-Pro Learn-Linux % unzip test3.zipArchive:  test3.zip extracting: test.txt                 extracting: test2.txt

zip也支持对目录压缩,如我们尝试压缩test目录:

orion-orion@MacBook-Pro Learn-Linux % zip test4.zip test  adding: test/ (stored 0%)

此时再解压test4.zip则会重新生成test目录:

orion-orion@MacBook-Pro Learn-Linux % unzip test4.zip Archive:  test4.zip   creating: test/

不过,zip是将输入的文件列表分别进行压缩的操作,即是对目录来进行压缩也是对目录内的所有文件one-by-one的操作。那我们需要将很多文件先打包成一个文件,然后再压缩呢?此时就要用到tar了。

tar:打包命令

很多人误解tar是个压缩命令,其实压缩命令是gzipxz以及我们上文提到的zip这些。tar是个打包命令,只不过附带压缩与解压的功能。tar的选项多如牛毛,为了减轻大家的记忆负担,我们只介绍下面两个选项:

-c: 建立打包文件(可搭配-v将过程中打包的文件可视化);

-x:解包或解压缩的功能(可搭配-C在特定目录解压);

(其实还有表示通过gzip进行压缩/解压缩的-z,通过bzip2的支持进行压缩/解压缩的-j,通过xz的支持进行压缩解压缩的-J等,但我们这里统一用.zip示范,就省去这些参数了)

那么,我们只需要记住下面的命令即可:

压缩: tar -cv -f filename.zip 要被压缩的文件或目录名称

解压缩:tar -xv -f filename.zip -C 欲解压的目录(这个目录必须已经存在)

注意,压缩传参顺序是压缩后的.zip文件在前,压缩前的文件在后,别搞错了。(让人联想到GCc编译器,不过gcc传参时规定是-o output_file.out的形式来指定输出的可执行文件,就回避了这个顺序问题)

比如,我们要将test文件夹(该文件夹下有一个test.txt文件)压缩,可以运行如下命令:

orion-orion@MacBook-Pro Learn-Linux % tar -cv -f test4.zip test    a testa test/test.txt

然后将其解压到当前目录,可运行如下命令:

orion-orion@MacBook-Pro Learn-Linux % tar -xv -f test4.zip -C .    x test/x test/test.txt

对多个文件压缩:

orion-orion@MacBook-Pro Learn-Linux % tar -cv -f test3.zip test.txt test2.txt  a test.txta test2.txt

然后将其解压到当前目录:

orion-orion@MacBook-Pro Learn-Linux % tar -xv -f test3.zip -C .x test.txtx test2.txt

由上面所说,zip/unzip和tar都是压缩什么解压出来就是什么,原来是目录就是目录,原来没目录不会帮你自动生成一个目录,但Linux或Mac系统的可视化压缩工具就不一样了(在Mac中被称为「归档实用工具」)。Mac中对目录压缩时压缩命令和tar命令是等效的,比如我们想用Mac自带的压缩工具压缩test文件夹:

Linux shell怎么进行文件解压,复制和移动

会生成对应的归档文件

Linux shell怎么进行文件解压,复制和移动

再解压会得到同样的文件夹(会自动帮我们重命名),不会帮我们生成多余的目录

Linux shell怎么进行文件解压,复制和移动

然而,如果我们尝试用Mac自带的压缩工具压缩多个文件

Linux shell怎么进行文件解压,复制和移动

它会自动帮我们生成一个名为归档.zip的文件

Linux shell怎么进行文件解压,复制和移动

然后,如果此时我们尝试对归档.zip文件进行解压,会发现系统会自动帮我们生成一个名为归档 的文件夹:

Linux shell怎么进行文件解压,复制和移动

这个文件夹内部才是我们需要的文件

Linux shell怎么进行文件解压,复制和移动

这在对大量文件操作时需要额外注意,否则会白白开销你一次拷贝文件的时间!

文件拷贝

我们紧接上面的情景。假设我们当前的目录为项目目录,而我们手滑使用了系统自带的可视化解压工具生成了一个多余的目录。我们接下来要把系统生成的多余的归档文件夹里的文件拷贝到当前目录,那么我们可以使用带r参数的cp命令:

orion-orion@MacBook-Pro Learn-Linux % cp -r 归档/ . orion-orion@MacBook-Pro Learn-Linux % lstest.txt        test2.txt       归档

这里-r参数表示递归复制命令,用于目录的递归复制。注意命令中的归档/表示归档目录下的所有文件,意思和归档/*相同:

orion-orion@MacBook-Pro Learn-Linux % cp -r 归档/* . orion-orion@MacBook-Pro Learn-Linux % lstest.txt        test2.txt       归档

选项参数-r写成-R是等效的:

orion-orion@MacBook-Pro Learn-Linux % cp -R 归档/* . orion-orion@MacBook-Pro Learn-Linux % lstest.txt        test2.txt       归档

但如果直接传入参数归档,则表示将这个目录整个地复制:

orion-orion@MacBook-Pro Learn-Linux % cp -r 归档 .   cp: ./归档 and 归档 are identical (not copied).

同一个目录下不可能有两个相同名称的子目录,这当然就会出错,当然我们可以将其复制到另外一个目录里:

orion-orion@MacBook-Pro Learn-Linux % cp -r 归档 /tmp orion-orion@MacBook-Pro Learn-Linux % ls /tmp |grep 归档归档

你可能要问,加r和不加r有啥区别?如果不加r,则默认是跳过目录的,也就是说只能copy文件:

orion-orion@MacBook-Pro Learn-Linux % cp  归档/ .  cp: 归档/ is a directory (not copied).orion-orion@MacBook-Pro Learn-Linux % cp  归档 /tmp cp: 归档 is a directory (not copied).

文件移动

我们还是紧接着上面的场景。假定我们已经将归档文件夹中的test.txttest2.txt成功拷贝到当前项目目录了。现在我们有了个新的需求:我们在项目目录中建了一个data子目录,现在需要将项目目录中的test.txttest2.txt移动到data子目录中。这就需要如下命令:

orion-orion@MacBook-Pro Learn-Linux % mv test2.txt test.txt dataorion-orion@MacBook-Pro Learn-Linux % ls datatest.txt        test2.txt

注意,如果有多个源文件或目录,则最后一个目标文件(也就是这里的data)一定是目录。当我们只移动一个文件时,就有潜在的二义性。这里因为data目录本身存在,我们移动test.txtdata目录还能正常执行:

orion-orion@MacBook-Pro Learn-Linux % mv test.txt data orion-orion@MacBook-Pro Learn-Linux % ls datatest.txt

但是如果data目录不存在,就会将mv解释为重命名的意思,比如如果我们将data目录删除再执行:

orion-orion@MacBook-Pro Learn-Linux % mv test.txt data

此时就等效于把test.txt更名为data文件:

orion-orion@MacBook-Pro Learn-Linux % ls -l|grep data-rw-r--r--  1 orion-orion  staff    0  4 20 22:01 data

可以看出,第一个字母是-,也就意味着data是普通文件,不是目录(是目录的话第一个字母是d)。

因此,使用mv语句时要格外小心,因为它既有移动到目录的作用,也有重命名的作用,一不注意就可能出错!

“Linux shell怎么进行文件解压,复制和移动”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linux shell怎么进行文件解压,复制和移动

本文链接: https://www.lsjlt.com/news/329300.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux shell怎么进行文件解压,复制和移动
    本篇内容介绍了“Linux shell怎么进行文件解压,复制和移动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将文件单个地进行压...
    99+
    2023-06-30
  • C#怎么移动、复制和删除文件
    本篇内容主要讲解“C#怎么移动、复制和删除文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么移动、复制和删除文件”吧!C#高级编程:文件操作类大家都知道,移动和删除文件或文件夹可以使用F...
    99+
    2023-06-17
  • Linux下文件夹的移动与复制详解
    目录1. 复制文件夹2. 移动文件夹3. 常见应用案例a. 复制备份数据b. 迁移文件夹到其他位置c. 归档数据4. 结论在linux系统中,移动和复制文件夹是常见的任务。无论你是想要备份数据、迁移文件夹到其他位置还是归...
    99+
    2023-04-19
    linux 文件夹移动 linux文件夹复制 linux文件夹复制并替换
  • Linux怎么移动文件
    这篇文章主要讲解了“Linux怎么移动文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么移动文件”吧!1.移动文件移动文件时需要注意的是文件的源地址和目标地址必须不同。这里有个...
    99+
    2023-06-28
  • windows移动硬盘无法复制进去文件如何解决
    今天小编给大家分享一下windows移动硬盘无法复制进去文件如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。移动硬盘无...
    99+
    2023-07-02
  • Linux文件复制、删除和移动命令的使用说明
    这篇文章主要介绍“Linux文件复制、删除和移动命令的使用说明”,在日常操作中,相信很多人在Linux文件复制、删除和移动命令的使用说明问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux文件复制、删除和...
    99+
    2023-06-13
  • Linux怎么解压、压缩gz文件
    这篇文章主要介绍“Linux怎么解压、压缩gz文件”,在日常操作中,相信很多人在Linux怎么解压、压缩gz文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么解压、压缩gz文件”的疑惑有所帮助!...
    99+
    2023-06-28
  • 利用Java怎么对文件进行压缩与解压缩
    今天就跟大家聊聊有关利用Java怎么对文件进行压缩与解压缩,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。用java压缩/解压文件: import java.io.*; im...
    99+
    2023-05-31
    java ava
  • 怎么将PPT文件进行压缩
    这篇文章给大家分享的是有关怎么将PPT文件进行压缩的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  操作步骤:  1.点击进入压缩页面,在跳转的页面有五个功能选项,点击选择PPT...
    99+
    2024-04-02
  • Linux下文件夹移动与复制的方法是什么
    今天小编给大家分享一下Linux下文件夹移动与复制的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 复制文件夹...
    99+
    2023-07-06
  • linux下怎么解压文件
    本篇内容介绍了“linux下怎么解压文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对于刚刚接触Linux的人来说,一定会给Linux下一...
    99+
    2023-06-13
  • 怎样在Linux中压缩和解压缩文件
    这期内容当中小编将会给大家带来有关怎样在Linux中压缩和解压缩文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压...
    99+
    2023-06-16
  • 怎么进行oracle控制文件的恢复
    这篇文章将为大家详细讲解有关怎么进行oracle控制文件的恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1重建控制文件SYS@hyyk> alte...
    99+
    2024-04-02
  • C#实现WPF项目复制和移动文件夹
    使用WPF做的一个简单的操作文件的demo,包括复制和移动文件夹,核心思想就是使用递归,如果只是移动或者复制单一文件,直接使用File.Copy()或者File.Move()方法即可...
    99+
    2024-04-02
  • Linux中shell怎么实现压缩多个文件
    这篇文章主要介绍Linux中shell怎么实现压缩多个文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux环境下写一个脚本从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件:首先介绍一下case...
    99+
    2023-06-09
  • Linux中批量移动、复制、追加和重命名文件的方法
    这篇文章主要介绍了Linux中批量移动、复制、追加和重命名文件的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中批量移动、复制、追加和重命名文件的方法文章都会有所收获,下面我们一起来看看吧。在 L...
    99+
    2023-06-27
  • Linux中怎么解压rar文件
    这篇文章主要讲解了“Linux中怎么解压rar文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中怎么解压rar文件”吧!RAR是一种专利文件格式,用于数据压缩与归档打包,其主要优...
    99+
    2023-06-27
  • go怎么压缩和解压zip文件
    本篇内容主要讲解“go怎么压缩和解压zip文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go怎么压缩和解压zip文件”吧!压缩zipfunc Zip(dest strin...
    99+
    2023-07-02
  • Linux下怎么解压rar文件
    这篇文章主要讲解了“Linux下怎么解压rar文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么解压rar文件”吧!正常rar是windows下的压缩文件,linux是不支持...
    99+
    2023-06-28
  • Linux下如何进行文件或者目录的打包及压缩、解压
    这篇文章将为大家详细讲解有关Linux下如何进行文件或者目录的打包及压缩、解压,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux下对于文件或者目录的打包及压缩、解压等操作压缩tar –...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作