Linux命令备忘实例(12)——文件管理

1.ls

这是在Linux系统中使用最广的命令了,用来列举给定目录下的文件,默认为当前目录。通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息。

1.概览

格式:

ls [选项] [目录名]

常用参数:

-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是’never’、’always’或’auto’其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开

2.特性实例

递归列出所有文件详细资料:

user@ubuntu:~$ ls -l -R /home/user

使用通配符列举:

user@ubuntu:~$ ls -l *.log

只列举子目录,不列举文件:

user@ubuntu:~$ ls -F /home | grep "/$"
user@ubuntu:~$ ls -l /home | grep "^d"

按时间逆序排列:

user@ubuntu:~$ ls -ltr /home

列举出所有文件和目录,目录名称后面添加“/”,可执行文件后添加“*”:

user@ubuntu:~$ ls -AF

计算指定目录下的文件数和目录数:

user@ubuntu:~$ ls -l * | grep "^-" | wc -l
user@ubuntu:~$ ls -l * | grep "^d" | wc -l

列出的文件添加绝对路径:

user@ubuntu:~$ ls | sed "s:^:`pwd`/:"

2.cp

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。

1.概览

这里写图片描述

2.特性说明

对于已经存在相同文件时,可以控制复制的方式。-b选项为每个重复的目标文件保存一个副本,此时默认的副本为原本文件名后加一个“~”作为副本文件名,-S选项就可以指定这个副本名的后缀;-i选项可以在遇到重复文件可能会覆盖的情况进行提示,-f就是忽略这个提示,遇到重复文件直接覆盖,-n选项就是显示指定不覆盖重复文件。

user@ubuntu:~$ cp -bi ../test ./
cp: overwrite './test'?y
user@ubuntu:~$ ls
test
user@ubuntu:~$ cp -bi -S ".bak" ../test ./
cp: overwrite './test'?y
user@ubuntu:~$ ls
test   test.bak

在复制时可以使用链接文件进行,-l指定使用硬链接,-s指定使用符号连接。

user@ubuntu:~$ cp -l ../test ./
user@ubuntu:~$ ls
test
user@ubuntu:~$ cp -s ../test ./
user@ubuntu:~$ ls -l test
lrwxrwx 1 user user 14 9 17 22:22 test -> /test

另外可以指定目标目录,这个选项在mv命令中有相同功能。-t指定目标文件夹,-T指定目标文件(将参数作为一个文件复制进去),-u指定仅仅在源文件比目标文件新才复制,否则不复制,-v输出复制过程中的信息。-x指定仅仅在一个文件系统中复制。
使用-r(-R)可以递归进行复制文件夹。-p选项可以保留源文件的各个属性不变。

3.mv

mv用来移动文件或文件夹,特别是可以用来重命名文件。
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

1.概览

这里写图片描述

2.特性说明

关于mv移动文件或文件夹的特性也有和cp命令类似的,首先是关于重复文件(夹)的处理,-b选项指定备份,-f选项指定强制覆盖,-n指定不覆盖,-i指定进行交互提示操作,-S指定进行备份时的备份文件名的后缀。

user@ubuntu:~$ mv -bi ../test ./
mv: overwrite './test'?y
user@ubuntu:~$ ls
test  test~
user@ubuntu:~$ mv -bi -S ".bak" ../test ./
cp: overwrite './test'?y
user@ubuntu:~$ ls
test  test~  test.bak

除此之外,-t指定目标文件夹,-T指定目标文件,-v显示操作过程中的信息,-u指定进行更新。这些选项cp命令完全相同。

4.rm

rm用来删除文件或文件夹,是一个比较危险的命令,最好确认清楚后再执行。

1.概览

这里写图片描述

2.特性说明

默认情况下,rm不删除目录,使用-r选项才会删除目录。-f是强制删除忽略任何提示,-i则是进行交互提示,-d则是删除空目录,-v提示进行的过程。

user@ubuntu:~$ rm -i ./test
rm: remove regular file 'test'?y
user@ubuntu:~$ rm -rf /tmp/var/

在删除已“-”开头的文件时,需要使用如下的两种方式替代,否则会被解析为给定的选而出现错误:(假设文件名为”-foo”)

rm -- -foo
rm ./-foo

5.touch

touch命令一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

1.概览

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
这里写图片描述

2.特性说明

文件一般有访问时间和修改时间,使用-a和-m分别可以进行修改,默认修改为当前时间。-d使用给定的日期,-t使用指定的时间戳,-r则是相对计算,将文件或目录的时间修改为提供的参数文件的时间。

user@ubuntu:~$ touch -a ./test
user@ubuntu:~$ touch -m ./test
user@ubuntu:~$ touch ./test-new  #创建新文件
user@ubuntu:~$ touch -r ./test test-new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值