【Linux学习笔记】3:目录与文件处理命令

时间:2022-06-02 15:32:11

Linux中一切皆文件,目录也是文件(目录文件),用来保存文件,相当于windows中的文件夹的概念。

[1]mkdir建立目录

(词汇:make directory)

mkdir [-p] [目录名]

选项:-p表示递归创建(先建立上级再建立下级),可以建立嵌套的目录。

[root@bogon ~]# mkdir -p test1/test2
[root@bogon ~]# ls
anaconda-ks.cfg install.log install.log.syslog test1
[root@bogon ~]# cd test1/
[root@bogon test1]# ls
test2

[2]cd切换所在目录

(词汇:change directory)

cd [路径]

选项:没有选项。

[root@bogon test1]# cd ~
[root@bogon ~]#

简化操作:”cd ~”或”cd “进入当前用户的家目录,”cd -“进入上次目录,”cd ..”进入上级目录,”cd .”进入当前目录(没啥用)。

[3]路径和补全

相对路径:参照当前所在目录进行查找。

[root@bogon ~]# cd ../usr/local/
[root@bogon local]#

绝对路径:从根目录开始查找。

[root@bogon local]# cd /etc/
[root@bogon etc]#

路径补全:在打目录时,可以按Tab键获得帮助,如下面的例子中,根目录”/”下有多个文件,所以要按两下Tab就能看到所有的文件,然后打了”cd /u”再按Tab键,因为根目录里只有一个u开头的目录user,就会自动补全,再打下”/l”,因为/user/下有多个l开头的目录,按两下Tab键就会显示这里所有l开头的目录了。
【Linux学习笔记】3:目录与文件处理命令
命令补全:也是按Tab键,如果只有唯一符合要求的命令就会直接补全,如果不唯一可以按两下Tab列出所有符合匹配的命令。
【Linux学习笔记】3:目录与文件处理命令

[4]pwd查询所在目录位置

(词汇:print working directory)
选项:没有选项。

[root@bogon test1]# pwd
/root/test1

[5]rmdir删除空目录

(词汇:remove empty directory)

[root@bogon ~]# rmdir test1/
rmdir: 删除 "test1/" 失败: 目录非空
[root@bogon ~]# cd test1/
[root@bogon test1]# rmdir test2/
[root@bogon test1]#

[6]rm删除文件或目录

(词汇:remove)

rm [-r -f] [文件或目录]

选项:-r删除目录,-f强制。
*删文件

[root@bogon test1]# touch abc
[root@bogon test1]# rm abc
rm:是否删除普通空文件 "abc"?y
[root@bogon test1]#

*删目录

[root@bogon ~]# rm -r test1/
rm:是否进入目录"test1"? y
rm:是否删除普通空文件 "test1/abc"?y
rm:是否删除目录 "test1"?y
[root@bogon ~]#

*强制删除而不提示

[root@bogon ~]# rm -rf test1/
[root@bogon ~]# ls
anaconda-ks.cfg install.log install.log.syslog

要小心,强制删除在linux中会严格执行,在windows中开机状态下不能格式化系统盘,但是linux中却可以用

rm -rf /

强制删除根目录。

[7]cp复制命令

(词汇:copy)

cp [-r -p -d -a] [原文件或目录] [目标目录]

选项:-r复制目录,-p连带文件属性复制,-d若源文件是链接文件则复制链接属性,-a相当于-pdr即所有的属性都会完全一样。

[root@bogon ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@bogon ~]# cp anaconda-ks.cfg /tmp/newname
[root@bogon ~]# ls /tmp/
newname yum.log

如果目标目录后不加名称,就是原名复制,如果加了名称就是改名复制。

[root@bogon ~]# cp -a anaconda-ks.cfg /tmp/newname
[root@bogon ~]# ll -h
总用量 44K
-rw-------. 1 root root 1.4K 822 18:22 anaconda-ks.cfg
-rw-r--r--. 1 root root 27K 822 18:22 install.log
-rw-r--r--. 1 root root 7.4K 822 18:20 install.log.syslog
[root@bogon ~]# ll -h /tmp/
总用量 4.0K
-rw-------. 1 root root 1.4K 822 18:22 newname
-rw-------. 1 root root 0 822 18:12 yum.log

可以发现就连文件的最后修改时间也是一样的了,在复制一些日志等文件时这样是有必要的。注:”ll”命令是”ls -l”的别名。

[8]mv剪切或改名

(词汇:move)

mv [原文件或目录] [目标目录]

选项:没有选项。

[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ll
总用量 4
-rw-------. 1 root root 1392 822 18:22 newname
-rw-------. 1 root root 0 822 18:12 yum.log
[root@bogon tmp]# mv newname lzh
[root@bogon tmp]# ll
总用量 4
-rw-------. 1 root root 1392 822 18:22 lzh
-rw-------. 1 root root 0 822 18:12 yum.log

只要原文件或目录本来就在目标目录下(上面不写就是当前目录),就可以实现改名。