Linux-文件基本操作

3.文件管理

本章同步视频:https://edu.51cto.com/sd/e4874

3.1 目录与路径

3.1.1 绝对路径与相对路径

n  绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 。

n  相对路径:路径的写法『不是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:『cd ../man』这就是相对路径的写法啦!相对路径意指『相对于目前工作目录的路径!』

3.1.2 目录的相关操作

.           代表此层目录

..          代表上一层目录

-           代表前一个工作目录

~           代表『目前用户身份』所在的家目录

~account  代表   account 这个用户的家目录(account是个账号名称)

1.cd -Change  the  current  directory to dir

(1)使用绝对路径

[root@localhost 桌面]# cd /tmp/

(2)使用相对路径

[root@localhost tmp]# cd bbb

(3)直接回到家目录1

[root@localhost bbb]# cd

(4)直接回到家目录2

[root@localhost tmp]# cd ~

(5)回到前一次工作目录

[root@localhost ~]# cd -

/tmp

[root@localhost tmp]#

(6)回到父目录

[root@localhost tmp]# cd ..

[root@localhost /]#

2. pwd - print name of current/working directory

[root@localhost ~]# pwd

/root

3.mkdir - make directories

mkdir [OPTION]... DIRECTORY...

(1)创建一个目录

[root@localhost tmp]# mkdir aaa

[root@localhost tmp]# ll

总用量 4

drwxr-xr-x. 2 root root 4096 2月  27 19:34 aaa

(2)创建多级目录

[root@localhost tmp]# mkdir -p bbb/ccc

[root@localhost tmp]# ll -R

.:

总用量 8

drwxr-xr-x. 2 root root 4096 2月  27 19:34 aaa

drwxr-xr-x. 3 root root 4096 2月  27 19:35 bbb

./aaa:

总用量 0

./bbb:

总用量 4

drwxr-xr-x. 2 root root 4096 2月  27 19:35 ccc

./bbb/ccc:

总用量 0

(3)创建目录时指定权限

[root@localhost tmp]# mkdir -m 777 ddd

[root@localhost tmp]# ll

总用量 12

drwxr-xr-x. 2 root root 4096 2月  27 19:34 aaa

drwxr-xr-x. 3 root root 4096 2月  27 19:35 bbb

drwxrwxrwx. 2 root root 4096 2月  27 19:39 ddd

4.rmdir - remove empty directories

rmdir [OPTION]... DIRECTORY...

(1)删除一个空目录

[root@localhost tmp]# ls

aaa  bbb  ddd

[root@localhost tmp]# rmdir ddd

[root@localhost tmp]# ls

aaa  bbb

(2)同时删除多级空目录

[root@localhost tmp]# ls

aaa  bbb

[root@localhost tmp]# rmdir -p bbb/ccc/

[root@localhost tmp]# ls

aaa

3.1.3 文件与目录管理

1.ls - list directory contents

ls [OPTION]... [FILE]...

(1)查看目录内容

[root@localhost tmp]# ls

aaa

(2)查看目录详细信息

[root@localhost tmp]# ls -l

总用量 4

drwxr-xr-x. 2 root root 4096 2月  27 19:34 aaa

(3)查看目录下全部内容(含.和..)

[root@localhost tmp]# ls -a

.   aaa     .esd-1000   .ICE-unix   .X0-lock   .XIM-unix

..  .esd-0  .font-unix  .Test-unix  .X11-unix

(4)查看目录下全部内容

[root@localhost tmp]# ls -A

aaa  .esd-0  .esd-1000  .font-unix  .ICE-unix  .Test-unix  .X0-lock  .X11-unix  .XIM-unix

(5)只查看当前目录信息

[root@localhost tmp]# ls -dl

drwxrwxrwt. 10 root root 4096 2月  27 19:43 .

(6)查看iNode信息

[root@localhost tmp]# ls -il

总用量 4

145499 drwxr-xr-x. 2 root root 4096 2月  27 19:34 aaa

2.cp - copy files and directories

cp [OPTION]... SOURCE... DIRECTORY

(1)复制

[root@localhost tmp]# ls

aaa  bbb

[root@localhost tmp]# cp bbb bbb.cp

[root@localhost tmp]# ls

aaa  bbb  bbb.cp

(2)目标文件已存在的复制

[root@localhost tmp]# ls

aaa  bbb  bbb.cp

[root@localhost tmp]# cp bbb bbb.cp

cp:是否覆盖"bbb.cp"? y

[root@localhost tmp]# ls

aaa  bbb  bbb.cp

(3)保留原属性的复制

[calf@localhost tmp]$ ll

总用量 4

-rw-rw-rw-. 1 root root    0 2月  27 19:51 bbb

[calf@localhost tmp]$ cp bbb bbb.calf      #正常复制

[calf@localhost tmp]$ ll

总用量 4

-rw-rw-rw-. 1 root root    0 2月  27 19:51 bbb

-rw-rw-r--. 1 calf calf    0 2月  27 20:06 bbb.calf

[calf@localhost tmp]$ cp -p bbb bbb.p      #保留属性的复制

[calf@localhost tmp]$ ll

总用量 4

-rw-rw-rw-. 1 root root    0 2月  27 19:51 bbb

-rw-rw-r--. 1 calf calf    0 2月  27 20:06 bbb.calf

-rw-rw-rw-. 1 calf calf    0 2月  27 19:51 bbb.p

(4)复制多个文件(目标必须是dir)

[root@localhost tmp]# cp /etc/passwd /etc/shadow /etc/group .

[root@localhost tmp]# ls      #复制3个文件到当前目录

group  passwd  shadow

3.rm - remove files or directories

rm [OPTION]... FILE...

(1)正常删除文件

[root@localhost tmp]# ls

aaa  bbb  bbb.a  bbb.calf  bbb.cp  bbb.p

[root@localhost tmp]# rm bbb.p

rm:是否删除普通空文件 "bbb.p"?y

[root@localhost tmp]# ls

aaa  bbb  bbb.a  bbb.calf  bbb.cp

(2)强行删除文件(系统不给提示)

[root@localhost tmp]# ls

aaa  bbb  bbb.a  bbb.calf  bbb.cp

[root@localhost tmp]# rm -f bbb.cp

[root@localhost tmp]# ls

aaa  bbb  bbb.a  bbb.calf

(3)删除一个目录下的全部文件

[root@localhost tmp]# rm -rf *    #删除当前目录下全部文件

[root@localhost ~]# rm -rf /tmp/*   #删除/tmp目录下全部文件

(4)删除特殊文件 -aaa

[root@localhost tmp]# ls

-aaa

[root@localhost tmp]# rm -aaa      #删除失败

rm:无效选项 -- a

Try 'rm ./-aaa' to remove the file "-aaa".

Try 'rm --help' for more information.

[root@localhost tmp]# rm ./-aaa     #删除成功

rm:是否删除普通空文件 "./-aaa"?y

4.mv - move (rename) files

mv [OPTION]... SOURCE... DIRECTORY

(1)正常移动文件

[root@localhost tmp]# mv /root/aaa .  

#移动/root/aaa到当前目录

[root@localhost tmp]# ls

aaa

(2)重命名

[root@localhost tmp]# ls

aaa

[root@localhost tmp]# mv aaa bbb

[root@localhost tmp]# ls

bbb

(3)移动多个文件(目标必须是dir)

[root@localhost tmp]# ls

bbb

[root@localhost tmp]# mv /root/aaa /root/ccc .   

#移动多个文件到当前目录

[root@localhost tmp]# ls

aaa  bbb  ccc

5.basename - strip directory and suffix from filenames

[root@localhost tmp]# basename /etc/sysconfig/network

network

6.dirname - strip last component from file name

[root@localhost tmp]# dirname /etc/sysconfig/network

/etc/sysconfig

7.file — determine file type

[root@localhost tmp]# file test

test: ASCII text

[root@localhost tmp]# file /bin/cd

/bin/cd: POSIX shell script, ASCII text executable

[root@localhost tmp]# file /var/lib/mlocate/mlocate.db

/var/lib/mlocate/mlocate.db: data

3.2 查看文件内容

3.2.1 直接查看文件内容

1.cat - concatenate files and print on the standard output

cat [OPTION]... [FILE]..

[root@localhost tmp]# cat /etc/passwd

[root@localhost tmp]# cat -n /etc/passwd    #显示行号

[root@localhost tmp]# cat -r /etc/passwd    

#倒序的倒序输出文本内容

2.tac - concatenate and print files in reverse

[root@localhost tmp]# tac  /etc/passwd     #倒序输出文本内容

3.nl - number lines of files

nl [OPTION]... [FILE]...

[root@localhost tmp]# nl /etc/passwd

3.2.2 可翻页的查看文件内容

1.more - file perusal filter for crt viewing

more [options] file [...]

[root@localhost tmp]# more /etc/passwd

2.less - opposite of more

[root@localhost tmp]# less /etc/passwd

3.2.3 查看部分文件内容

1.head - output the first part of files

head [OPTION]... [FILE]...

[root@localhost tmp]# head /etc/passwd          

 #显示前10行内容,默认

[root@localhost tmp]# head -n 5 /etc/passwd     #显示前5行内容

[root@localhost tmp]# head -n +5 /etc/passwd   #显示前5行内容

[root@localhost tmp]# head -n -5 /etc/passwd    

#显示倒数第5行之前的内容

2.tail - output the last part of files

tail [OPTION]... [FILE]...

[root@localhost tmp]# tail /etc/passwd     #显示最后10行,默认

[root@localhost tmp]# tail -n 5 /etc/passwd      #显示最后5行

[root@localhost tmp]# tail -n -5 /etc/passwd     #显示最后5行

[root@localhost tmp]# tail -n +5 /etc/passwd     #从第5行开始显示

注意:head的最后一个例子与tail的最后一个例子的区别。

[root@localhost tmp]# tail -f /var/log/messages  

#如果message的内容继续增加,tail将继续输出增加的内容。

3.2.4 查看非文本文件内容

1.od - dump files in octal and other formats

od [OPTION]... [FILE]...

[root@localhost tmp]# od /etc/passwd


上一篇:jsrender模板引擎


下一篇:Vue mixin配置项