linux 目录与文件,Linux文件与目录管理

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

包括在不同的目录间切换,建立与删除目录,建立与删除文件,查看文件内容等

一.目录与路径

1.相对路径与绝对路径

绝对路径:路径写法一定由根目录/写起,例如:/usr/share/doc这个目录

相对路径:路径写法不是由根目录写起,指相对于当前工作目录的路径,例如:cd ../usr

2.目录的相关操作

(1)切换目录:cd命令1

2

3

4

5

6cd [相对路径或绝对路径]

cd . #代表此层目录

cd .. #代表上一层目录

cd ~ #代表目前使用者身份所在的家目录

cd - #代表前一个工作目录

cd ~account #代表account这个使用者的家目录

(2)显示当前所在目录:pwd命令1

2/var/www

(3)建立新目录:mkdir命令1

2

3

4

5

6

7

8

9

10

11

12

13

14[email protected]:/tmp# mkdir test

[email protected]:/tmp# ls -dl test

drwxr-xr-x 2 root root 4096 Mar 7 05:37 test

[email protected]:/tmp# mkdir -p test1/test2/test3/test4 #-p代表递归建立目录

[email protected]:/tmp# ls -dl test*

drwxr-xr-x 2 root root 4096 Mar 7 05:37 test

drwxr-xr-x 3 root root 4096 Mar 7 05:42 test1

[email protected]:/tmp# mkdir -m 711 test2 #-m代表指定目录权限

[email protected]:/tmp# ls -dl test*

drwxr-xr-x 2 root root 4096 Mar 7 05:37 test

drwxr-xr-x 3 root root 4096 Mar 7 05:42 test1

drwx--x--x 2 root root 4096 Mar 7 05:43 test2

(4)删除目录:rmdir命令1

2

3

4

5

6

7

8

9

10

11[email protected]:/tmp# rmdir test

[email protected]:/tmp# ls -dl test*

drwxr-xr-x 3 root root 4096 Mar 7 05:42 test1

drwx--x--x 2 root root 4096 Mar 7 05:43 test2

[email protected]:/tmp# rmdir test1

rmdir: failed to remove `test1': Directory not empty #test1目录尚有内容,无法删除

[email protected]:/tmp# rmdir -p test1/test2/test3/test4 #-p连通上层目录一起删除

[email protected]:/tmp# ls -dl test*

drwx--x--x 2 root root 4096 Mar 7 05:43 test2

二.文件与目录管理

1.文件与目录的查看:ls命令1

2

3ls -a 显示全部文件,包括隐藏文件

ls -d 仅列出目录本身,而不是列出目录内的文件数据

ls -l 详细信息显示,包括文件的属性与权限等数据

2.文件或目录的复制命令:cp命令1

2

3

4

5

6

7

8

9

10[email protected]:~# cp .bashrc /tmp/test/bashrc

bashrc

[email protected]:~# cp -i .bashrc /tmp/test/bashrc #-i:若目标文件以及存在时,在覆盖时会先询问操作的进行

cp: overwrite `/tmp/test/bashrc'? y

[email protected]:~# cp -a .bashrc /tmp/test/bashrc2 #-a:连同文件属性也一起复制过去

[email protected]:~# ls -l /tmp/test/bashrc2 .bashrc

-rw-r--r-- 1 root root 3106 Apr 19 2012 .bashrc

-rw-r--r-- 1 root root 3106 Apr 19 2012 /tmp/test/bashrc21

2

3

4

5

6

7

8

9

10

11[email protected]:/tmp# ls -dl test*

drwxr-xr-x 2 root root 4096 Mar 7 06:07 test

drwxr-xr-x 2 root root 4096 Mar 7 18:11 test1

[email protected]:/tmp# cp test test1

cp: omitting directory `test'

[email protected]:/tmp# cp -r test test1 #-r:如果是目录的复制需要加上-r的选项

test

[email protected]:/tmp# ls test1/test

bashrc bashrc1 bashrc2

3.文件或目录的删除命令:rm命令1

2

3

4

5

6

7

8

9rm: cannot remove `test2': Is a directory

[email protected]:/tmp# rm -r test2 #当删除目录时,需要加上-r选项

[email protected]:/tmp# ls -dl test*

drwxr-xr-x 2 root root 4096 Mar 7 06:07 test

drwxr-xr-x 3 root root 4096 Mar 7 18:12 test1

[email protected]:/tmp# rm -ir test #加入-i选项,删除前会询问操作者是否操作,避免误删除

rm: descend into directory `test'? ^C #按下[ctrl]+c中断删除操作

4.移动文件或目录命令或重命名:mv命令1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25[email protected]:~/tmp# mkdir mvtest

[email protected]:~/tmp# cp ~/.bashrc bashrc

bashrc mvtest

[email protected]:~/tmp# mv bashrc mvtest #将bashrc文件移动到mvtest目录下

mvtest

[email protected]:~/tmp# ls mvtest

bashrc

mvtest mvtest2

[email protected]:~/tmp# mv mvtest mvtest2 #将mvtest目录移动到mvtest2目录下

mvtest2

[email protected]:~/tmp# ls mvtest2

mvtest

[email protected]:~/tmp# mv mvtest2 mvtest1 #将mvtest2目录重命名为mvtest1目录

mvtest1

[email protected]:~/tmp# ls mvtest1/

mvtest

[email protected]:~/tmp# ls mvtest1/mvtest/

bashrc

5.获取路径的文件名与目录名称:basename命令和dirname命令1

2

3

4[email protected]:~# basename /etc/sysconfig/network

network #获取最后的文件名

[email protected]:~# dirname /etc/sysconfig/network

/etc/sysconfig #获取目录名

三.文件内容查看

1.直接查看文件内容:cat,tac,nl命令1

2

3[email protected]:~# cat /etc/passwd #从第一行开始显示文件内容

[email protected]:~# tac /etc/passwd #从最后一行开始显示文件内容

[email protected]:~# nl /etc/passwd #在文件内容前加上行号

2.可翻页查看:more,less命令

cat命令是将文件内容一次性显示出来,没有一页一页翻动的功能,而more和less命令具有一页一页翻动的功能

在more命令按以下键的功能:1

2

3

4空格键(space):代表向下翻一页

Enter:代表向下翻一行

b或[ctrl]-b:代表往回翻页

q:代表立刻离开more,不再显示该文件内容

在less命令按以下键的功能:1

2

3

4空格键:向下翻动一页

[pagedown]:向下翻动一行

[pageup]:向上翻动一行

q:离开less程序

3.数据截取:head,tail命令

head命令能取出一个文件的前几行,tail则是取出文件的后几行1

2

3

4

5

6

7

8

9head [-n number] 文件

[email protected]:~# head /etc/manpath.config #默认显示前十行

[email protected]:~# head -n 20 /etc/manpath.config #显示前二十行

[email protected]:~# head -n -100 /etc/manpath.config #后一百行不会显示出来

tail [-n number]文件

[email protected]:~# tail /etc/manpath.config #默认显示最后十行

[email protected]:~# tail -n 20 /etc/manpath.config #显示最后二十行

[email protected]:~# tail -n +100 /etc/manpath.config #后一百行显示出来

4.非纯文本文件读取:od命令1

2od [-t TYPE] 文件

可读取二进制等文件

5.创建文件:touch命令1touch 文件名

四.文件默认权限:umask

当我们建立一个新的文件或目录时,它的默认权限与umask有关,它指定了目前用户在建立文件或目录时候的权限默认值,得知umask的方法:1

2

3

40022

u=rwx,g=rx,o=rx

查看的方式有两种,一种可以直接输入umask,就可以看到数字类型的权限设置值,另一种则是加入-S这个选项,就会以符号类型的方式来显示出权限了

但是要注意的是,这里umask的值并不直接是文件或目录的默认权限值,它规定的是是默认值需要减掉的权限,文件的默认权限值为:-rw-rw-rw-,即666;目录的默认权限值为drwxrwxrwx,即777,再减去umask指定的值,那么1

2建立文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--

建立目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x

测试一下:1

2

3

4

5[email protected]:~/tmp# touch test1

[email protected]:~/tmp# mkdir test2

[email protected]:~/tmp# ls -dl test*

-rw-r--r-- 1 root root 0 Mar 10 06:05 test1

drwxr-xr-x 2 root root 4096 Mar 10 06:05 test2

修改umask值的方式如下:1

2

3

4

5

6[email protected]:~/tmp# umask 002

[email protected]:~/tmp# touch test3

[email protected]:~/tmp# mkdir test4

[email protected]:~/tmp# ls -dl test[34]

-rw-rw-r-- 1 root root 0 Mar 10 06:16 test3

drwxrwxr-x 2 root root 4096 Mar 10 06:16 test4

五.文件隐藏属性1

2

3

4

5

6

7

8

9

10

11

12

13

14

15A :当设定了 A 这个属性时,若你有存取此档案(或目录)时,他的访问时间 atime

将不会被修改,可避免I/O较慢的机器过度的存取磁盘。这对速度较慢的计算机有帮助

S :一般档案是异步写入磁盘的(原理请参考第五章sync的说明),如果加上 S 这个

属性时,当你进行任何档案的修改,该更动会『同步』写入磁盘中。

a :当设定 a 之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root

才能设定这个属性。

c :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩,

但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!)

d :当 dump 程序被执行的时候,设定 d 属性将可使该档案(或目录)不会被 dump 备份

i :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法

写入或新增资料!』对于系统安全性有相当大的帮助!只有 root 能设定此属性

s :当档案设定了 s 属性时,如果这个档案被删除,他将会被完全的移除出这个硬盘

空间,所以如果误删了,完全无法救回来了喔!

u :与 s 相反的,当使用 u 来配置文件案时,如果该档案被删除了,则数据内容其实还

存在磁盘中,可以使用来救援该档案喔!

1.设置文件隐藏属性:chattr命令1

2

3

4

5chattr [+-=][ASacdistu] 档案或目录名称

选项与参数:

+ :增加某一个特殊参数,其他原本存在参数则不动。

- :移除某一个特殊参数,其他原本存在参数则不动。

= :设定一定,且仅有后面接的参数1

2

3[email protected]:~/tmp# chattr +i test3

rm: cannot remove `test3': Operation not permitted

由于对文件test3附加了i的隐藏属性,所以无法删除

2.显示文件隐藏属性:lsattr命令1

2

3

4

5lsattr [-adR] 档案或目录

选项与参数:

-a :将隐藏文件的属性也秀出来;

-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;

-R :连同子目录的数据也一并列出来!1

2[email protected]:~/tmp# lsattr test3

----i--------e- test3

六.观察文件类型:file命令1

2

3

4[email protected]:~/tmp# file ~/.bashrc

/root/.bashrc: ASCII English text

[email protected]:~/tmp# file /usr/bin/passwd

/usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xc101d30ff4513f2dbad17fcc483dcda4a38e1df0, stripped

七.命令与文件的查找

1.脚本文件的查找:which命令1

2

3

4

5

6

7

8

9which [-a] command

选项与参数:

-a:将所有由PATH目录中科院找到的命令均列出,而不止第一个被找到的命令名称

[email protected]:~/tmp# which passwd

/usr/bin/passwd

/bin/ls

可以发现有的命令是找不到的,因为which是默认找PATH内所规范的路径,去查找执行文件的文件名

2.文件的查找:whereis,locate/updatedb,find命令

whereis由一些特定的目录查找文件1

2

3

4

5

6

7

8

9

10whereis [-bmsu] 文件或目录名

-b  只查找二进制文件。

-B  只在设置的目录下查找二进制文件。

-f  不显示文件名前的路径名称。

-m  只查找说明文件。

-M  只在设置的目录下查找说明文件。

-s  只查找原始代码文件。

-S  只在设置的目录下查找原始代码文件。

-u  查找不包含指定类型的文件。

locate是在已建立的数据库/var/lib/mlocate里面的数据所查找到的,不用再去硬盘当中读取数据,所以较为快速,数据库默认一天更新一次,如果要手动更新数据库,需要输入updatedb命令1

2

3

4locate [-ir] keyword

-i:忽略大小写的差异

-l:仅输出几行的意思

find1

2

3[email protected]:~/tmp# find /var -mtime +4 #+4代表大于等于5天前的文件

[email protected]:~/tmp# find /var -mtime -4 #-4代表小于等于4天内的文件

[email protected]:~/tmp# find /var -mtime 4 #4-5那一天的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值