Linux文件操作

本文目录

  • 1 创建、命令文件 touch
  • 2 查看文件类型 file
  • 3 复制文件与目录 cp
  • 4 移动文件、重命名文件 mv
  • 5 删除文件 rm

创建、命令文件 touch

使用touch命令可以创建一个文件:

$ touch name.txt
$ ls
name.txt

上面的命令创建了一个名为name.txt的文件。

在Linux,命名文件通常使用下面的字符:

  • 小写字母,比如a, b, c …
  • 大写字母,比如A, B, C …
  • 数字,比如0, 1, 2 …
  • 连字符-,不可放在文件名开头。
  • 下划线_
  • .

下面是几条关于文件命名的约定:

  • 尽量不使用空格,可以使用下划线或者连字符,比如foo_bar
  • 重要目录尽量使用简短的名字,比如bin
  • 重要的文件使用大写字母命名,比如README

查看文件类型 file

使用file命令查看文件类型:

$ file /etc/passwd /bin
/etc/passwd: ASCII text
/bin:        directory

上面的例子中,file告诉我们,/etc/passwd是一个纯ASCII文本文件,/bin是一个目录。

复制文件与目录 cp

cp命令可以复制一个文件,该命令的语法为:

cp -[ip] file1 file2

其中file1是已有文件的名字,file2是目标文件的名字。

首先,我们创建一个文件name.txt,并在里面写一些内容:

$ touch name.txt
$ echo "Hello, World!" > name.txt
$ cat name.txt
Hello, World!

复制一份副本,这份副本的名字叫my_name.txt,命令如下:

$ cp name.txt my_name.txt
$ cat my_name.txt
Hello, World!

也可以使用目录的方式指定复制文件和目标文件:

$ cp my_name.txt ~/my_name_home.txt
$ cat ~/my_name_home.txt
Hello, World!

可见,cp将工作目录下的my_name.txt文件复制到家目录下的my_name_home.txt文件,如果该文件不存在,那么将创建该文件,如果该文件存在,那么将覆盖该文件。

什么?覆盖文件?!很危险的!

所以可以使用-i选项来提醒用户,加上该选项时,如果需要覆盖文件,cp会发出确认信息。

-p选项可以使目标文件和复制文件具有相同的修改时间、访问时间和权限。

也可以一次复制多个文件:

$ mkdir bk
$ cp name.txt my_name.txt bk/
$ ls bk/
my_name.txt  name.txt

上面的命令将两个文件都复制到了bk目录下。

如果要复制一个目录,那么需要使用-r选项:

$ cp -r bk/ my_bk/

上面的命令将bk目录复制了一份副本,这份副本的名字叫my_bk

移动文件、重命名文件 mv

与目录操作非常类似,mv命令可以移动或者重命名文件。

$ mv ~/gamelist.txt ./
$ ls gamelist.txt
gamelist.txt

上面的命令将家目录中的gamelist.txt文件移动到工作目录中。

如果已有文件和目标文件在同一个目录中,则为重命名操作:

$ mv gamelist.txt my_gamelist.txt
$ ls *gamelist.txt
my_gamelist.txt

删除文件 rm

删除文件使用rm命令。

$ ls *name.txt
my_name.txt  name.txt
$ rm *name.txt
$ ls *name.txt
ls: cannot access '*name.txt': No such file or directory

rm删除删除了所有以name.txt结尾的文件。

使用-f选项将忽略文件权限和-i提示选项,因此,只有在确认自己在做什么时,才能使用-f选项。比如下面将快速且安静的删除bk/目录:

$ ls -d bk
bk
$ rm -rf bk
$ ls -d bk
ls: cannot access 'bk': No such file or directory

注意:Linux没有“回收站”功能,一旦被删除,就无法恢复。


相关:

使用tar命令可以打包和压缩文件。

使用下面的命令可以将my_bk目录打包为bk.tar包:

$ tar -cvf bk.tar my_bk/
my_bk/
my_bk/name.txt
my_bk/my_name.txt

其中:

  • -c选项:建立一个打包或压缩文件。
  • -v选项:操作过程中显示文件提示。
  • -f选项:使用档名,其后不可加其他选项。
  • bk.tar:目标文件名。
  • my_bk/:操作文件名。

使用下面的命令即可解开上面所述的包:

$ tar -xvf bk.tar
my_bk/
my_bk/name.txt
my_bk/my_name.txt

其中-x选项表示解包。

tar命令使用-z选项使用gzip压缩包,使用-j选项使用bzip2压缩包。

比如:

$ tar -zcvf bk.tar.gz my_bk/

表示打包后以gzip格式压缩。

使用

$ tar -zxvf bk.tar.gz

即可解压缩和解包。

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java Socket 编程原理及教程

对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进...

1081
来自专栏Java帮帮-微信公众号-技术文章全总结

Linux常用命令

Linux常用命令 常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list) -a ...

5326
来自专栏LanceToBigData

linux(十一)之初始化文件

前面写了很多linux的知识,其实很多都是命令的,所以要去多多的练习才能学的更好,加油为了好工作。 要么现在懒惰,未来讨饭。要么现在努力,未来惬意。 一、初始化...

2267
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我...

36013
来自专栏小白安全

小白博客 linux常用操作命令

常用指令 ls   显示文件或目录      -l 列出文件详细信息l(list)      -a 列出当前目录下所有文件及目录,包括隐藏的a...

2957
来自专栏一个爱瞎折腾的程序猿

vs2012升级vs2017后的一些坑

6201
来自专栏文武兼修ing——机器学习与IC设计

Windows平台下Python使用swig调用C++

步骤0:swig简介 swig是一种可以将C++代码转换为多种脚本语言封装的工具,可以在swig官网www.swig.org下载,解压后将swig.exe的路径...

5679
来自专栏Theo Tsao

Linux常用命令(二)

依赖于一个事先建立的索引数据库 /var/lib/mlocate/mlocate.db ,这个索引数据库默认每天会自动更新一次,可能无法搜索到最近新增的文档

1092
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

作者 | Wray 来自 | http://www.codebelief.com/ Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根...

37113
来自专栏编程

Linux命令行:find的26个用法示例

作者 | Wray ? Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大...

1958

扫码关注云+社区

领取腾讯云代金券