linux 文件管理类命令及功能用法

第一题:Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。

文件管理类的命令有:

cd,ls,touch,mldir,cp,mv,rm,rmdir,pwd,tree

使用方法

(1),cd命令用来切换工作目录至dirname。其中dirName表示法可为绝对路径或相对路径。

常用格式:

cd   #进入用户家目录
cd~  #进入用户家目录
cd-  #返回进入此目录之前的目录
cd.. #返回上级目录
cd../..  #返回上两级目录
(2),ls:
ls命令就是list的缩写,缺省下ls用来显示出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls
命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

ls #显示目录下的文件

[root@localhost tmp]# ls /
bin dev home lib64 mnt proc run srv test usr
boot etc lib media opt root sbin sys tmp var
[root@localhost tmp]#

-a  #显示目录下的隐藏文件
[root@localhost ~]# ls
[root@localhost ~]# ls -a
. .bash_history .bash_profile .cache .cshrc .tcshrc
.. .bash_logout .bashrc .config .local .viminfo
[root@localhost ~]#

-A   #同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录) 
[root@localhost ~]# ls -a
. .bash_history .bash_profile .cache .cshrc .tcshrc
.. .bash_logout .bashrc .config .local .viminfo
[root@localhost ~]# ls -A
.bash_history .bash_profile .cache .cshrc .tcshrc
.bash_logout .bashrc .config .local .viminfo
[root@localhost ~]#

-l #长格式显示文件,显示文件的详细属性信息,属主、属组、文件大小、权限等

[root@localhost ~]# ls -l /
total 32
lrwxrwxrwx. 1 root root 7 Jun 22 19:56 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Jun 24 21:30 boot
drwxr-xr-x. 20 root root 3320 Jul 9 02:07 dev
drwxr-xr-x. 144 root root 8192 Jul 9 02:06 etc
drwxr-xr-x. 5 root root 39 Jul 4 10:43 home
    lrwxrwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Aug 12 2015 media
drwxr-xr-x. 2 root root 6 Aug 12 2015 mnt
drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt
dr-xr-xr-x. 437 root root 0 Jul 9 02:06 proc
dr-xr-x---. 5 root root 4096 Jul 9 02:28 root
drwxr-xr-x. 39 root root 1180 Jul 9 02:07 run
lrwxrwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Aug 12 2015 srv
dr-xr-xr-x. 13 root root 0 Jul 9 02:06 sys
drwxr-xr-x. 2 root root 20 Jun 27 10:03 test
rwxrwt. 10 root root 4096 Jul 9 03:23 tmp
r-xr-x. 13 root root 4096 Jun 22 19:56 usr
r-xr-x. 21 root root 4096 Jul 9 02:06 var
[root@localhost ~]#

-h # –human-readable ,配合 -l 使用 , 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

t@localhost ~]# ls -lh /
l 32K
    wx. 1 root root 7 Jun 22 19:56 bin -> usr/bin
r-xr-x. 4 root root 4.0K Jun 24 21:30 boot
r-xr-x. 20 root root 3.3K Jul 9 02:07 dev
r-xr-x. 144 root root 8.0K Jul 9 02:06 etc
r-xr-x. 5 root root 39 Jul 4 10:43 home
rwxrwx. 1 root root 7 Jun 22 19:56 lib -> usr/lib
rwxrwx. 1 root root 9 Jun 22 19:56 lib64 -> usr/lib64
r-xr-x. 2 root root 6 Aug 12 2015 media
r-xr-x. 2 root root 6 Aug 12 2015 mnt
drwxr-xr-x. 4 root root 28 Jul 5 06:55 opt
r-xr-x. 437 root root 0 Jul 9 02:06 proc
r-x---. 5 root root 4.0K Jul 9 02:28 root
r-xr-x. 39 root root 1.2K Jul 9 02:07 run
rwxrwx. 1 root root 8 Jun 22 19:56 sbin -> usr/sbin
r-xr-x. 2 root root 6 Aug 12 2015 srv
r-xr-x. 13 root root 0 Jul 9 02:06 sys
r-xr-x. 2 root root 20 Jun 27 10:03 test
rwxrwt. 10 root root 4.0K Jul 9 03:23 tmp
r-xr-x. 13 root root 4.0K Jun 22 19:56 usr
r-xr-x. 21 root root 4.0K Jul 9 02:06 var
t@localhost ~]#

-d # –directory,配合 -l 使用,显示目录本身属性而非其内部的文件列表

t@localhost tmp]# ls -ld
rwxrwt. 10 root root 4096 Jul 9 03:35 .
t@localhost tmp]# ls -ld /usr/
r-xr-x. 13 root root 4096 Jun 22 19:56 /usr/
t@localhost tmp]#

-r # 逆序显示

t@localhost ~]# ls /
bin dev home lib64 mnt proc run srv test usr
boot etc lib media opt root sbin sys tmp var
[root@localhost ~]# ls -r /
var tmp sys sbin root opt media lib etc boot
usr test srv run proc mnt lib64 home dev bin
[root@localhost ~]#

-R # 递归显示

[root@localhost tmp]# ls -R /tmp/
/tmp/:
mylinux

/tmp/mylinux:   
bin boot dev etc lib lib64 proc sbin sys tmp usr var

/tmp/mylinux/bin:

/tmp/mylinux/boot:
grub

/tmp/mylinux/boot/grub:

/tmp/mylinux/dev:

/tmp/mylinux/etc:
rc.d sysconfig

/tmp/mylinux/etc/rc.d:
init.d

/tmp/mylinux/etc/rc.d/init.d:

/tmp/mylinux/etc/sysconfig:
network-soripts
(3),touch :创建新的空文件或者修改文件的访问时间和修改时间为当前时间

touch #创建一个新的空文件

-c #知道文件路径不存在时不予创建新的文件

[root@localhost ~]# ls
[root@localhost ~]# touch test.txt
[root@localhost ~]# ls
test.txt
[root@localhost ~]# cat test.txt
[root@localhost ~]#

-a #修改文件的访问时间

[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:20:21.910628548 -0400
Change: 2017-07-09 04:22:05.044609937 -0400
Birth: -
[root@localhost ~]#

-m #修改文件的修改时间

[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:20:21.910628548 -0400
Change: 2017-07-09 04:22:05.044609937 -0400
Birth: -
[root@localhost ~]# touch -m test.txt
[root@localhost ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d    Inode: 73007616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2017-07-09 04:22:05.044609937 -0400
Modify: 2017-07-09 04:22:41.660248300 -0400
Change: 2017-07-09 04:22:41.660248300 -0400
Birth: -                        
[root@localhost ~]#

-t STAMP #修改文件的指定时时间,改参数是修改修改时间的地址

(4),mkdir :建立新目录

mkdir #创建新目录

[root@localhost ~]# ls
test.txt text
[root@localhost ~]# mkdir test
[root@localhost ~]# ls
test test.txt text
[root@localhost ~]#

-p   #创建递归目录, 可一次创建多层目录
[root@localhost ~]# rm -rf *
[root@localhost ~]# ls
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# mkdir -p ./a/b/c/d/e/f
[root@localhost ~]# tree
. 
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f

6 directories, 0 files
[root@localhost ~]# ^C
[root@localhost ~]#

-m #指定创建文件的权限

[root@localhost ~]# mkdir -m 222 test
[root@localhost ~]# ll
total 0
drwxr-xr-x. 3 root root 14 Jul 9 04:34 a
d-w--w--w-. 2 root root 6 Jul 9 04:36 test
[root@localhost ~]#
(5),cp :复制命令

cp 用法格式

~]# cp [-adfilprsu] 源文件(source) 目的文件(destination) 
~]# cp [options] source1 source2 source3 .... directory

-a :相当于 -pdr 的意思,用于实现归档

[root@localhost ~]# cp -a /etc/ /tmp/
[root@localhost ~]# ls /tmp/etc/
abrt gssproxy profile
adjtime hba.conf profile.d
aliases highlight protocols
aliases.db host.conf pulse
alsa hostname purple
alternatives hosts python
amanda hosts.allow qemu-ga
anacrontab hosts.deny qemu-kvm
asound.conf hp radvd.conf
at.deny idmapd.conf rc0.d
at-spi2 init.d rc1.d
audisp inittab rc2.d
audit inputrc rc3.d
autofs.conf ipa rc4.d
autofs_ldap_auth.conf iproute2 rc5.d
auto.master ipsec.conf rc6.d

-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其他疑问时,不会询问使用者,而强制复制;
-i :若目的文件(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结文件建立,而非复制文件本身;
-p :连同文件的属性一起复制过去,而非使用默认属性;
-r :递归持续复制,用于目录的复制行为;

[root@localhost ~]# cp -r abc/ /tmp/
[root@localhost ~]# tree /tmp/abc
/tmp/abc
├── abc.txt
└── abc.txtls

0 directories, 2 files
[root@localhost ~]# tree abc/
abc/
├── abc.txt
└── abc.txtls

0 directories, 2 files
[root@localhost ~]#
(6),mv :移动文件

-f #force 强制的意思,强制直接移动而不询问;

-i #若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u #若目标文件已经存在,且 source 比较新,才会更新 (update)

移动文件

[root@localhost ~]# mv abc.txt /tmp/
[root@localhost ~]# ls /tmp/
abc.txt
[root@localhost ~]# ls 
a
[root@localhost ~]#

文件改名

[root@localhost tmp]# ls
abc.txt
[root@localhost tmp]# mv abc.txt test.txt
[root@localhost tmp]# ls
test.txt
[root@localhost tmp]#
(7),rm :删除文件

-f #就是 force 的意思,强制移除;

[root@localhost tmp]# touch abc.txt
[root@localhost tmp]# ls
abc.txt
[root@localhost tmp]# rm -f abc.txt 


[root@localhost tmp]# mkdir test
[root@localhost tmp]# rm -rf test/
[root@localhost tmp]# ls
[root@localhost tmp]#

-i #互动模式,在删除前会询问使用者是否动作

[root@localhost tmp]# rm  -i abc.txt 
rm: remove regular empty file ‘abc.txt’? n
[root@localhost tmp]# ls
abc.txt


[root@localhost tmp]# rm  -i abc.txt 
rm: remove regular empty file ‘abc.txt’? y
[root@localhost tmp]# ls
[root@localhost tmp]#

-r #递归删除!最常用在目录的删除了

[root@localhost tmp]# tree 
.
└── a
    └── b
        └── c
            └── d
                └── e
                    └── f

6 directories, 0 files
[root@localhost tmp]# rm -r a/
rm: descend into directory ‘a/’? y
rm: descend into directory ‘a/b’? y
rm: descend into directory ‘a/b/c’? y
rm: descend into directory ‘a/b/c/d’? y
rm: descend into directory ‘a/b/c/d/e’? y
rm: remove directory ‘a/b/c/d/e/f’? y
rm: remove directory ‘a/b/c/d/e’? y
rm: remove directory ‘a/b/c/d’? y
rm: remove directory ‘a/b/c’? y
rm: remove directory ‘a/b’? y
rm: remove directory ‘a/’? y
[root@localhost tmp]# y
failed to load config file: No such file or directory
bash: y: command not found...
[root@localhost tmp]# ls
[root@localhost tmp]#
(8),rmdir :仅可以删除空目录
[root@localhost ~]# tree a/
a/
└── b
    └── c
        └── d
            └── e
                └── f

5 directories, 0 files
[root@localhost ~]# rmdir a/
rmdir: failed to remove ‘a/’: Directory not empty
[root@localhost ~]# rmdir a/b/c/d/e/f
[root@localhost ~]# tree a/
a/
└── b
    └── c
        └── d
            └── e

4 directories, 0 files
[root@localhost ~]#

-p #删除上级空目录

[root@localhost ~]# tree
.
├── a
│       └── b
│               └── c
│                        └── d
│                                 └── e
└── test

6 directories, 0 files
[root@localhost ~]# rmdir -p a/b/c/d/e/
[root@localhost ~]# ls
test
[root@localhost ~]#
(9),pwd :显示当前的所工作的路径

pwd #查看当前所在的路径

[root@localhost Desktop]# pwd
/home/danry/Desktop
[root@localhost Desktop]#

-P #显当前所在位置的完整的路径

[root@localhost mail]# pwd -P
/var/spool/mail
[root@localhost mail]# ls -l /var/mail
lrwxrwxrwx. 1 root root 10 Jun 22 19:56 /var/mail -> spool/mail
[root@localhost mail]#

(10),tree

第二题: bash的工作特性之命令执行状态的返还值和命令行展开所涉及到的内容及示例演示。

命令或程序的返还值:

命令执行状态返回值范围:0-255

其中0代表命令执行结果的正确,1-255代表命令执行结果的错误

[root@localhost tmp]# ls
[root@localhost tmp]# echo $?
0


[root@localhost tmp]# asdf
failed to load config file: No such file or directory
bash: asdf: command not found...
[root@localhost tmp]# echo $?
127
[root@localhost tmp]#

命令行展开;

以某些bash能够解释的符号来代替命令中的某些参数。

~:展开为用户的家目录;

例:切换至家目录

cd ~;pwd

/root

{}:可承载一个以逗号分隔的列表,并将其展开为多个路径;

例:在/tmp/d目录下创建f1,f2,f3三个文件

ttouch /tmp/d/f{1,2,3}

[root@localhost tmp]# touch /tmp/d/f{1,2,3} 
[root@localhost tmp]# tree 
.
└── d
    ├── f1
    ├── f2
    └── f3

1 directory, 3 files
[root@localhost tmp]#

第三题:请使用一下命令行展开功能来完成一下联系:

(1)、创建/tmp目录下的: a_c,a_d,b_c,b_d

mkdir -v /tmp/{a,b}_{c,d}

[root@localhost ~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: created directory ‘/tmp/a_c’
mkdir: created directory ‘/tmp/a_d’
mkdir: created directory ‘/tmp/b_c’
mkdir: created directory ‘/tmp/b_d’
[root@localhost ~]# tree /tmp/
/tmp/
├── a_c
├── a_d
├── b_c
└── b_d

4 directories, 0 files
[root@localhost ~]#

(2)、创建、tmp/mylinux目录下的:

mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│   └── network-soripts
├── lib
│   └── modiles
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│   ├── bin
│   └── sbin
└── var
    ├── log
    ├── look
    └── run

mkdir -p
/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}

[root@localhost ~]# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-soripts},lib/modiles,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{look,log,run}}
[root@localhost ~]# tree /tmp/
/tmp/
└── mylinux
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│   └── network-soripts
├── lib
│   └── modiles
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│   ├── bin
│   └── sbin
└── var
├── log
├── look
└── run

25 directories, 0 files
[root@localhost ~]#

第四题:文件的数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

元数据包括:文件的大小,权限,属主属组,时间戳,inode等属性。

stat #查看元数据信息

[root@localhost tmp]# stat d/f1
  File: ‘d/f1’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 170         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/ UNKNOWN)   Gid: (    0/ UNKNOWN)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-07-09 10:03:13.648705432 +0000
Modify: 2017-07-09 10:03:13.648705432 +0000
Change: 2017-07-09 10:03:13.648705432 +0000
 Birth: -
[root@localhost tmp]#

access time:访问时间,atime,即:通过cat,more等读取其内容。

modify time:修改时间,mtime,即:改变文件内容。

change time:改变时间,ctime,即:元数据发生改变。

原创文章,作者:N27_Danry,如若转载,请注明出处:http://www.178linux.com/79627

(0)
N27_DanryN27_Danry
上一篇 2017-07-09
下一篇 2017-07-09

相关推荐

  • Linux文件类型及把剩下的颜色标识

    Linux文件类型及bash下的颜色标识 Linux一切皆文件 查看文件类型的命令: 例如:列出ls的文件类型                file  /bin/ls 例如:粗略的列出文件类型           &n…

    Linux干货 2016-10-16
  • 救援SOS

    CentOS卸载内核后用救援模式恢复 1、卸载内核                              2、重启虚拟机后机器起不来,所以reboot重新启动立马按住ESC键,选择光盘引导 3、选择第三项&…

    Linux干货 2016-09-19
  • Linux初学笔记(markdown格式)

    Linux基础命令笔记

    Linux干货 2018-03-26
  • rpm包管理

    rpm包管理 rpm(RedHat Package Manager) 是RedHat公司发展的一种将软件安装到Linux系统的管理机制,也是一种数据库记录方法。 Linux系统上软件的安装主要分两种方式,从厂商发布的tarball通过编译来安装;或者使用厂商已经在相应平台上编译好的二进制文件。 从源码编译安装的程序,在漏洞修补以及软件功能升级时太过麻烦,并且…

    Linux干货 2016-11-18
  • Windows和Linux关于一块网卡绑定多个网络地址的解决之道

    Windows和Linux关于一块网卡绑定多个网络地址的问题解决之道   在不同场合用不同ip地址访问网络,而且都是固定ip。是一件很头疼的问题。不过,Windows和Linux系统都提供了解决方法。接下来我们先谈Windows系统下操作,再说Linux如何操作。 一、Windows设置   1. 我以Windows7为例,首先鼠标左键点击你电脑左下角有网络…

    Linux干货 2016-09-07
  • N25_第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell [root@EASTED ~]# grep -E "(root|fedora|user1)" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:o…

    Linux干货 2017-01-10

评论列表(1条)

  • 马哥教育
    马哥教育 2017-07-13 17:08

    不错,非常认真,再接再励。