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)
上一篇 2017-07-09 17:49
下一篇 2017-07-09 18:56

相关推荐

  • 第五周 练习

    1、显示当前系统上root、fedora或user1用户的默认shell; 1.  egrep "^(root|user1|fedora)" /etc/passwd|cut –d: –f7   2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:h…

    Linux干货 2016-11-28
  • 用户、组的创建和管理

    用户的创建 useradd usermod userdel useradd:创建用户 create a new user or update default new user information     useradd [options]… LOGIN     &…

    Linux干货 2016-08-03
  • N26-第四周作业-邢岩

    马哥门徒-N26-邢岩   精神练习需要深入认真的工作以及热情的劲头。当你开始练习,你是在挣扎、在反抗,你需要集中精力,然后慢慢进步。那么,我们就开始吧。   第一题,复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   ~]# cp -r /et…

    Linux干货 2017-02-15
  • vim编辑器

    vim编辑器 vi:Vistual Interface,是一种文本编辑器,所谓文本编辑器就是基于字符编码的文件,常见的编码有ASCLL编码,UNICODE编码。 vim:即vi IMproved:vi的增强版,可以使用颜色或者底线等方式来显示一些特殊信息,是模式化的编辑。 文本编辑器的种类 行编辑器:所谓行编辑器就是一行一行来编辑处理的工具,如sed 全屏编…

    Linux干货 2016-08-15
  • 用户管理类命令

    2018-03-18

    Linux干货 2018-03-18
  • shell脚本编程基础(1)

    一.位置变量相关知识     1.位置变量定义:在脚本代码中调用通过命令行传递给脚本的的参数     2.位置变量种类:              &…

    Linux干货 2016-08-15

评论列表(1条)

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

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