linux文件目录管理命令,linux文件目录管理命令概述

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

目录管理类命令:cd,pwd,ls,mkdir,rmdir,tree

cd:change directory切换目录

cd [/PATH/TO/SOMEDIR]

cd: 切换回家目录

cd ~:切换回自己的家目录(bash中,~表示家目录)

cd ~USERNAME:切换至指定用户的家目录

cd -:在上一次所在目录与当前目录之间来回切换

[root@localhost ~]# cd /etc/

[root@localhost etc]# cd

[root@localhost ~]#

pwd: 显示当前工作目录

[root@localhost ~]# pwd

/root

ls: list, 列出指定目录下的内容

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

-a: 显示所有文件,包括隐藏文件

-A:显示除.和..之外的所有文件

-l: 长格式列表,即显示文件的详细属性信息

-h, :对文件大小单位换算;换算后结果可能会非精确值

-d:查看目录自身而非其内部的文件列表

-r: reverse, 逆序显示

-R: recursive,递归显示

[root@localhost ~]# ls -l /tmp/

total 0

drwxr-xr-x. 2 root root 23 Jan 31 20:23 magedu

drwxr-xr-x. 4 root root 28 Feb 5 22:30 mytest1

drwx------. 3 root root 16 Feb 6 21:02 systemd-private-mDzNGp

drwx------. 3 root root 16 Feb 6 21:01 systemd-private-soCRw5

drwx------. 3 root root 16 Mar 1 18:24 systemd-private-TmTWUJ

drwx------. 3 root root 16 Mar 1 18:23 systemd-private-zsO2hy

drwxr-xr-x. 3 root root 65 Feb 21 00:36 test

drwx------. 2 root root 6 Feb 23 18:10 vmware-root

------------------------------------------------------------------------------

[root@localhost ~]# ls -a /tmp/

. magedu systemd-private-zsO2hy .X11-unix

.. mytest1 test .XIM-unix

.esd-0 systemd-private-mDzNGp .Test-unix

.font-unix systemd-private-soCRw5 vmware-root

.ICE-unix systemd-private-TmTWUJ .X0-lock

mkdir:创建工作目录

mkdir [OPTION]... DIRECTORY...

-p: 如果父目录不存在,则递归的创建目录

-v: verbose,显示详细过程

[root@localhost test]# mkdir -pv abc/bcd

mkdir: created directory ‘abc’

mkdir: created directory ‘abc/bcd’

[root@localhost test]# tree /tmp/test/

/tmp/test/

|-- abc

| `-- bcd

|-- file.sh

|-- hostname.sh

|-- tmp

`-- useradd.sh

注意:以路径为命令的作用对象;路径必须得存在否则用-p选项;不给绝对路径时默认在当前目录下创建.

rmdir:删除空目录

rmdir [OPTION]... DIRECTORY...

-p:递归删除,删除某目录后,如果其父目录为空,则一并删除之

-v: 显示过程

[root@localhost test]# rmdir -pv abc/bcd/

rmdir: removing directory, ‘/tmp/test/abc/bcd/’

rmdir: removing directory, ‘/tmp/test/abc’

tree命令:树状结构显示当前目录结构

tree [options] [directory]

-L level:指定要显示的层级

[root@localhost test]# tree -L 2 /tmp/

/tmp/

|-- magedu

| `-- machine-id

|-- mytest1

| |-- pam.d

| `-- pki

|-- systemd-private-mDzNGp

| `-- tmp

|-- systemd-private-soCRw5

`-- tmp

文件查看类命令:cat, tac, head, tail, more, less,

cat: 文件文本查看工具,从前面往后面查看

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

-n:给显示的文本行编号

-E: 显示行结束符$

[root@localhost test]# cat -nE /etc/issue

1 \S$

2 Kernel \r on an \m$

3 $

tac:文件文本查看工具,从后面往前面查看, tac /etc/fstab;

tac [OPTION]... [FILE]...

[root@localhost test]# tac /etc/issue

Kernel \r on an \m

\S

head: 查看文件的前n行

head [options] FILE

-n #: 查看前面第几行的信息,默认显示前面10行

[root@localhost test]# head -n 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

tail: 看文件的后n行;

tail [options] FILE

-n # : 查看倒数的第几行,默认查看最后的10行,n可以不写

-f:查看文件尾部内容结束后不退出,跟随显示新增的行

[root@localhost test]# tail -5 /etc/passwd

tuser1:x:2004:2004::/home/tuser1:/bin/bash

hadoop:x:2005:2005::/home/hadoop:/bin/bash

testbash:x:2006:2006::/home/testbash:/bin/bash

basher:x:2007:2007::/home/basher:/bin/bash

nologin:x:2008:2008::/home/nologin:/sbin/nologin

more:翻屏至文件尾部后自动退出

h:获取帮助信息

space:向后翻一屏

b:向前翻一屏

q:退出

less, :和more的功能类似

但是文件到尾部的时候不会自动退出,可以来回翻动查看的文件

h:获得帮助

q:退出

space:向后翻一屏

b:向前翻一屏

文件管理工具:cp, mv, rm

cp命令:copy

单源复制:cp [OPTION]... [-T] SOURCE DEST

多源复制:cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认;

-f:强制覆盖目标文件;

-r, -R:递归复制目录;

-t: 设置目标目录

-d:复制符号链接文件本身,而非其指向的源文件;

-a:用于实现归档;

单源复制:cp [OPTION]... [-T] SOURCE DEST

SOURCE是文件

如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;

如果DEST是非目录文件:则覆盖目标文件;

如果DEST是目录文件:则先在DEST目录下创建一个与源文件名的文件,并复制其数据流;

[root@localhost test]# pwd

/tmp/test

[root@localhost test]# ls

file.sh hostname.sh tmp useradd.sh

[root@localhost test]# cp /etc/issue /tmp/test/abc

[root@localhost test]# cat /tmp/test/abc

\S

Kernel \r on an \m

多源复制:cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

SOURCE是目录,则必须使用-r选项

如果DEST不存在:错误;

如果DEST是非目录文件:错误;

如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

[root@localhost test]# ls /etc/rc0.d/

K03rhnsd K50netconsole K79iprdump K80iprinit K80iprupdate K90network

[root@localhost test]# cp -r /etc/rc0.d/ /tmp/test/

[root@localhost test]# ls /tmp/test/rc0.d/

K03rhnsd K50netconsole K79iprdump K80iprinit K80iprupdate K90network

mv命令:剪切或重命名

在同一目录中移动文件则实现重命名功能

mv [OPTION]... [-T] SOURCE DEST

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

mv [OPTION]... -t DIRECTORY SOURCE..

常用选项:

-i:交互式;

-f:force

SOURCE是单文件时,如果DEST不存在:则创建DEST文件并实现剪切功能.如果DEST存在:则SOURCE文件内容将覆盖DEST原文件内容

SOURCE是多文件时,DEST如果存在必须为目录,否则报错.

如果DEST不存在:剪切功能

如果DEST存在,必须是目录,否则报错

SOURCE是目录

如果DEST是不存在, 剪切功能

如果DEST是目录文件, 剪切功能:

[root@localhost test]# ls

file.sh hostname.sh tmp useradd.sh

[root@localhost test]# mv file.sh new_file.sh

[root@localhost test]# ls

hostname.sh new_file.sh tmp useradd.sh

------------------------------------------------------------------------------

[root@localhost yum.repos.d]# tree /tmp/

/tmp/

|-- a

| |-- c

| `-- d

|-- anaconda.log

|-- b

| |-- c

| `-- d

[root@localhost tmp]# mv /tmp/b /tmp/test/

[root@localhost tmp]# tree /tmp/test/

/tmp/test/

`-- b

|-- c

`-- d

rm命令:remove ,rm [OPTION]... FILE...

常用选项:

-i:interactive,交互式

-f:force,强制

-r: recursive,递归式

[root@localhost test]# file /tmp/issue

/tmp/issue: ASCII text

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

[root@localhost test]# file /tmp/issue

/tmp/issue: cannot open (No such file or directory)

注意:所有不用的文件建议不要直接删除,特别是rm -rf /* 这样的危险操作.而是移动至某个专用目录.

bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

bash使用特殊的变量$?保存最近一条命令的执行状态结果,echo $?可以查看其返回值,成功:0.失败:1-255. 命令正常执行时,有的还回有命令返回值, 根据命令及其功能不同,结果各不相同

[root@localhost test]# ls

file.sh hostname.sh tmp useradd.sh

[root@localhost test]# echo $?

0

----------------------------------------------

[root@localhost test]# lsl

bash: lsl: command not found...

[root@localhost test]# echo $?

127

请使用命令行展开功能来完成以下练习:

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

[root@localhost test]# ls

file.sh hostname.sh tmp useradd.sh

[root@localhost test]# mkdir -p /tmp/{a,b}/{c,d}

[root@localhost test]# tree /tmp/

/tmp/

|-- a

| |-- c

| `-- d

|-- b

| |-- c

| `-- d

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

mylinux/

├── bin

├── boot

│ └── grub

├── dev

├── etc

│ ├── rc.d

│ │ └── init.d

│ └── sysconfig

│ └── network-scripts

├── lib

│ └── modules

├── lib64

├── proc

├── sbin

├── sys

├── tmp

├── usr

│ └── local

│ ├── bin

│ └── sbin

└── var

├── lock

├── log

└── run

[root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

[root@localhost tmp]# tree /tmp/mylinux/

/tmp/mylinux/

|-- bin

|-- boot

| `-- grub

|-- dev

|-- etc

| |-- rc.d

| | `-- init.d

| `-- sysconfig

| `-- network-scripts

|-- lib

| `-- modules

|-- lib64

|-- proc

|-- sbin

|-- sys

|-- tmp

|-- usr

| `-- local

| |-- bin

| `-- sbin

`-- var

|-- lock

|-- log

`-- run

24 directories, 0 files

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

文件:两类数据

元数据:metadata,文件的属性数据

数据: data,文件的实际数据

可以使用stat命令查看文件的元数据,如: stat /etc/passwd

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

File: ‘/etc/passwd’

Size: 1926 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 134333990 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:passwd_file_t:s0

Access: 2018-03-01 20:33:51.552016909 +0800

Modify: 2018-01-25 18:19:55.855550535 +0800

Change: 2018-01-25 18:19:55.856550537 +0800

Birth: -

相关参数描述:

File:文件名;

Size:文件大小;

Blocks:文件占了多少数据块;

IO Block:文件所占数据块的大小;

Device:文件所在的硬盘的位置;

Inode:文件的节点;

Links:文件的链接数;

Access:用户或组对该文件的访问权限;

Uid:文件的属主;

Gid:文件的属组;

Context:文件的安全上下文;

Access:文件上一次的访问时间,又称为access time;

Modify:文件最近一次修改的时间,又称为modify time;

Change:文件属性最近一次改动时间,又称为change time;

可以使用touch命令来修改文件的时间戳信息, touch [option] [FILE]

-c:指定的文件路径不存在时不予创建;

-a:仅修改access time;

-m:仅修改modify time;

-t [[CC]YY]MMDDhhmm[.ss]:使用指定的日期时间修改时间戳;

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

File: ‘/etc/passwd’

Size: 1926 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 134333990 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:passwd_file_t:s0

Access: 2018-03-01 20:33:51.552016909 +0800

Modify: 2018-01-25 18:19:55.855550535 +0800

Change: 2018-01-25 18:19:55.856550537 +0800

Birth: -

[root@localhost tmp]# touch -m /etc/passwd

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

File: ‘/etc/passwd’

Size: 1926 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768d Inode: 134333990 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:passwd_file_t:s0

Access: 2018-03-01 20:33:51.552016909 +0800

Modify: 2018-03-01 21:18:49.289034098 +0800

Change: 2018-03-01 21:18:49.289034098 +0800

Birth: -

如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

alias命令 alias NAME=’COMMAND’对当前shell设置别名, 如果想要永久有效。需要定义在配置文件/etc/bashrc中.用反引号来或者使用$()的形式引用另一个命令的结果

root@localhost tmp]# ls /tmp/test/

b

[root@localhost tmp]# mkdir /tmp/test/$(date +%F-%m-%d).backup

[root@localhost tmp]# ls /tmp/test/

2018-03-01-03-01.backup b

-----------------------------------------------------------------

[root@localhost tmp]# rootid=`id root`

[root@localhost tmp]# echo rootid

rootid

显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

ls -d /var/l[0-9][[:alpha:]]

[root@localhost tmp]# ls -d /var/l[0-9][[:alpha:]]

ls: cannot access /var/l[0-9][[:alpha:]]: No such file or directory

[root@localhost tmp]# ls /var/

account cache db games gopher lib lock mail opt run tmp yp

adm crash empty gdm kerberos local log nis preserve spool var

显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

ls -d /etc/[0-9][^0-9]

[root@localhost tmp]# ls -d /etc/[0-9][^0-9]

ls: cannot access /etc/[0-9][^0-9]: No such file or directory

显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

ls -d /etc/[^[:alpha:]][[:alpha:]]

[root@localhost tmp]# ls -d /etc/[^[:alpha:]][[:alpha:]]

ls: cannot access /etc/[^[:alpha:]][[:alpha:]]: No such file or directory

在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

mkdir -v /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

[root@localhost tmp]# mkdir -v /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

mkdir: created directory ‘/tmp/tfile-2018-03-01-21-12-12’

复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

mkdir -v /tmp/mytest1

cp -rv /etc/p[^0-9] /tmp/mytest1

[root@localhost tmp]# mkdir -v /tmp/mytest1

mkdir: created directory ‘/tmp/mytest1’

[root@localhost tmp]# cp -rv /etc/p[^0-9] /tmp/mytest1

‘/etc/pm’ -> ‘/tmp/mytest1/pm’

‘/etc/pm/config.d’ -> ‘/tmp/mytest1/pm/config.d’

‘/etc/pm/power.d’ -> ‘/tmp/mytest1/pm/power.d’

‘/etc/pm/sleep.d’ -> ‘/tmp/mytest1/pm/sleep.d’

复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

mkdir -v /tmp/mytest2

cp -vr /etc/*.d /tmp/mytest2

[root@localhost tmp]# mkdir -v /tmp/mytest2

mkdir: created directory ‘/tmp/mytest2’

[root@localhost tmp]# cp -vr /etc/*.d /tmp/mytest2

‘/etc/bash_completion.d’ -> ‘/tmp/mytest2/bash_completion.d’

‘/etc/bash_completion.d/yum’ -> ‘/tmp/mytest2/bash_completion.d/yum’

‘/etc/bash_completion.d/yummain.py’ -> ‘/tmp/mytest2/bash_completion.d/yummain.py’

.......

复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

mkdir -v /tmp/mytest3

cp -rv /etc/[lmn]*.conf /tmp/mytest3

[root@localhost tmp]# mkdir -v /tmp/mytest3

mkdir: created directory ‘/tmp/mytest3’

[root@localhost tmp]# cp -rv /etc/[lmn]*.conf /tmp/mytest3

‘/etc/ld.so.conf’ -> ‘/tmp/mytest3/ld.so.conf’

‘/etc/libaudit.conf’ -> ‘/tmp/mytest3/libaudit.conf’

‘/etc/libuser.conf’ -> ‘/tmp/mytest3/libuser.conf’

‘/etc/locale.conf’ -> ‘/tmp/mytest3/locale.conf’

‘/etc/logrotate.conf’ -> ‘/tmp/mytest3/logrotate.conf’

‘/etc/man_db.conf’ -> ‘/tmp/mytest3/man_db.conf’

‘/etc/mke2fs.conf’ -> ‘/tmp/mytest3/mke2fs.conf’

‘/etc/mtools.conf’ -> ‘/tmp/mytest3/mtools.conf’

‘/etc/nfsmount.conf’ -> ‘/tmp/mytest3/nfsmount.conf’

‘/etc/nsswitch.conf’ -> ‘/tmp/mytest3/nsswitch.conf’

‘/etc/numad.conf’ -> ‘/tmp/mytest3/numad.conf’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值