文件管理命令及相关知识

linux 中一切皆文件,我们所做的一切都是和文件打交道,总结下常用的文件管理相关命令

文件分为两部分:元数据和数据

元数据: 即真实数据的属性。可用 stat  命令查看

            stat   [option]...   FILE...

[[email protected] ~]# stat /etc/passwd
                  File: ‘/etc/passwd’
                  Size: 2302       Blocks: 8          IO Block: 4096   regular file
                  Device: 803h/2051d Inode: 10244448    Links: 1
                  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
                  Context: system_u:object_r:passwd_file_t:s0
                  Access: 2016-06-18 19:52:01.243237019 -0400
                  Modify: 2016-04-23 09:47:20.643714195 -0400
                  Change: 2016-04-23 09:47:20.650714195 -0400
                   Birth: -

包括文件大小,所占的块数 ,所占块大小, 文件类型, 权限, 所属属主,属组,context值

文件访问时间,文件内容修改时间,文件改变的时间。

其中access,modify, change 为文件的时间戳,可以用touch 命令来修改

touch  -a  FILE     只是修改文件的atime

touch  -m  FILE     只是修改文件的mtime

注: 当atime或mtime 其中之一任意改变,ctime都会改变。

touch 命令同时还可以创建文件

用法:touch  FILE

如果名字后面想跟上创建文件时的时间,可以引用date命令来实现。

e.g.    在/tmp目录下创建已tfile开头,后面接当前日期的文件,格式如tfile-2015-5-27-09-22-33

touch  tfile-$(date +%F-%H-%M-%S)

当我们每次需要创建该类型的文件时,都得输入这么长的命令,为了方便,我们可以把上面那条命令定义一个别名,以后可以直接输入别名就可以达到该效果。

定义命令别名 tfile

当前shell生效 :alias tfile=‘touch tfile-$(date +%F-%H-%M-%S)’

如果对所有用户生效,可以编辑/etc/bashrc  ,在最后一行加上如上命令。

当我们管理文件时,首先要知道自己所处的位置,然后开始工作

pwd  : 显示当前的在哪个目录下,默认登录进系统,都处于登录用户的家目录下。

mkdir: 创建目录,目录也是文件。

用法 mkdir [option]...   FILE...

rmdir:   只能删除空目录。一般删除目录和文件用rm命令。

列子:

1. 创建/tmp目录下的:a_c, a_d, b_c, b_d

解:touch  /tmp/{a,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

解: mkdir -p  /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}}

当我们执行完命令后,我们可以查看命令执行状态返回值来查看命令是否成功。

echo $?

当值是0时,表示命令执行成功,

当值是1-255时,表示命令执行失败。

通配符与正则表达式

当我们需要查看目录中某些特定需求的文件时,此时就需要通过glob(通配符)或者正则表达式的帮助来完成。

我们可以通过几个列子来总结下。

例子:

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

解: ls -R /var | grep "^1.*[0-9].*[a-z]$"

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

解: ls -R /etc  | grep "^[[:digit:]].*[^[:digit:]]$"

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

解: ls -R /etc/ | grep "^[^[:alpha:]][[:alpha:]].*" | grep -v "^\ /.*"

一般来说,如果是在一个目录下面查找特定需求的文件,只要用到通配符就好,但是上面题目中所要求要查找出所有的文件和目录,这里只能是用到正则表达式了,也许是有别的方法,以后再研究,这里总结下通配符和正则表达式。

通配符:即shell中为了实现文件名的匹配,查找类似的文件,即打牌中的赖子。

*   : 匹配任意长度的任意字符。

?   : 匹配任意一个字符。

[]    : 匹配指定范围的一个字符。

[^]   : 匹配范围外的字符。

专用的字符合集:

[:alnum:] : 数字或字母

[:alpha:]  : 字母

[:digit:]    :  数字

[:lower:]   : 小写字母

[:graph:]   : 除了空格和控制字符外的所有字符

[:punct:]    : 标点符号

[:upper:]   :  大写字母

正则表达式主要是对文本的匹配,像上面的几道题都是先显示出来目录下的所有文件,相当于把结果放到了一个文本中,再通过正则表达式来匹配结果。

字符匹配:表示任意单个字符  ;  []   [^]   字符合集与通配符一样。

次数匹配:

*   匹配前面的字符任意次数   .*  表示任意长度的任意字符

\?  匹配前面字符0次或1次

\+  匹配前面字符至少1次

\{m\}   匹配前面字符m次

\{m,n\} 匹配前面字符至少m次,至多n次。

位置匹配:

^  :表示以什么开头

$ : 表示以什么结尾
                                   \<   :匹配单词词首

\> : 匹配单词词尾。

文件的复制移动删除

cp  复制文件和文件夹

语法 : cp  [option]...    SOURCE       DEST    (复制单个源到目标)

cp  [option]...     SOURCE...    DEST    (复制多个源到目标)

注: ...  表示可以存在多个

例子:

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

解:此时就需要通过通配符来完成该操作了。

mkdir /tmp/mytest{1,2,3}

cp  -r  /etc/p*[^[:digit:]]   /tmp/mytest1

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

解: cp -r  /etc/*.d    /tmp/mytest2

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

解:  cp  -r   /etc/[l,m,n]*.conf    /tmp/mytest3

  cp的常用选项

-r   ,-R: 递归复制,复制目录下所有目录和文件

-i            :  交互式

-a           : 归档,保留元数据属性,相当于-dR -preserv=all

-d            : 不复制真实的文件,还是保持该文件为链接文件

-L            : 复制文件真实内容,文件不存为链接文件

-p            :  保留 属主,属组,时间戳

mv    移动文件夹(用于改文件名)

语法 : mv  [option]...    SOURCE       DEST    (移动单个源到目标)

mv  [option]...     SOURCE...    DEST    (移动多个源到目标)

rm      删除文件或文件夹

语法: rm   [option]...    FILE...

时间: 2024-10-19 11:54:26

文件管理命令及相关知识的相关文章

Linux系统的相关知识、常用命令及centos 7网卡配置

(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦) 一.Linux系统的相关知识 1.Linux中根目录下所有文件夹的含义和用途(括号内为举例存放的文件) /  根目录 cd /  切换到根目录 / bin  存放可执行文件 /dev  存放设备文件  (网卡 CPU) /media  存放可移除设备文件   (U盘 CD/DVD  VMTools) /opt  存放第三方软件的默认位置 /tmp  存放临时文件  (日志文件) /root  root用户的家目录,主

Linux系统的相关知识、常用命令及拓展、centos 7网卡配置

一.Linux系统的相关知识 1.Linux中根目录下所有文件夹的含义和用途 目录 功能 /bin 存放可执行文件 /dev 存放设备文件 (如:网卡.CPU) /media 存放可移除设备文件 (如:U盘.CD/DVD.VMTools) /opt 存放第三方软件的默认位置 /tmp  存放临时文件 (如:日志文件) /root root用户的家目录,主文件夹 /home 普通用户的家目录,文件夹的命名是以用户的名字来命名的 /etc 存放配置文件 /usr 存放操作系统软件资源 /var 存放

端口相关知识学习笔记

端口相关知识学习笔记 端口相关知识学习笔记 本周主要精力是放在挂接上,所以知识矩阵的学习回归到根本上,所以这周发的学习笔记是关于计算机端口的相关介绍. 有过一些黑客攻击方面知识的读者都会知道,其实那些所谓的黑客并不是像人们想象那样从天而降,而是实实在在从您的计算机"大门"中自由出入.计算机的" 大门"就是我们平常所说的"端口",它包括计算机的物理端口,如计算机的串口.并口.输入/输出设备以及适配器接口等(这些端口都是可见的),但更多的是不可见的软

三层交换机相关知识

三层交换机相关知识 这次的作死之路又要开始了.这次的对象主要是交换机:还是三层的: 这是这次实验的总体用图: 现在现根据图上的标志:将所有的主机配置好:目前没有做任何vlan:所以PC1和PC3是能够互通的: 接下来:我想先去探索下三层交换机关闭portswitch会怎么样: 第一步:先关闭了再说: 因为按照图中的设计:PC1的帧如果想要到达PC2,那么就必然要经过LSW1.但是现在我关闭了g0/0/1端口的portswitch:现在pc1并不能ping通pc2: 通过百度:三层交换机的端口不仅

Linux文件管理命令

Linux文件管理命令 Linux目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 参数: -p,显示当前路径,而非使用连接路径 mkdir:新建新目录 参数: -m:直接配置文件的权限,而不管默认权限umask,比如mkdir -m 711 test1,则test1的权限为711 -p:帮助你直接将所需要的目录递归创建起来,比如mkdir -p

linux 服务器分区格式化相关知识 -mount

关于linux 系统mount和mkfs 的相关知识: 使用mount 1)  Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认mount会自动选择正确的类型,通常类型ext2/ext3/ext4之类的. 常用的类型有:                  光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntf

静态路由表设置以及路由汇总相关知识

随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入.而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用.当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由.由于网络规模较小且不经常变动,所以静态路由是最合适的选择. 本文作为一篇初级入门类文章,会以几个简单实例讲解静态路由,并在最后讲解一点关于路由汇总(归纳)的知识.由于这类家庭和小型办公局域网所采用的一般都是中低档宽带路由器,所以这篇文章就以最简单的宽带路由器为例.(其实无论在什么档次的路

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

(整理)ubuntu 的 相关知识(来自 鸟哥的私房菜)

1. Linux 文件权限概念 $ ls 察看文件的指令 $ ls -al 出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件) 在你第一次以root身份登入Linux时, 如果你输入上述指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思: 图2.1.1.文件属性的示意图 第一栏代表这个文件的类型与权限(permission): 这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:(图2.1.1及图2.1.2内的权限并无关系) 图2