Linux 文件和目录操作命令(一)
1、cd
(change directory)切换到指定目录
- 		返回上次目录
.. 		返回上层目录
回车    返回主目录
/   	根目录
2、cp
(copy)复制文件或目录
-r -R 递归复制该目录及其子目录内容
-p  连同档案属性一起复制过去
-f  不询问而强制复制
-s  生成快捷方式
-a  将档案的所有特性都一起复制
cp -r /home/hj/a	/tmp
3、find
查找目录及目录下的文件
选项与参数:
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime 和-amin,-cmin与-mmin,以 -mtime 说明
   -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案;
   -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名;
   -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。
   -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
2. 与使用者或组名有关的参数:
   -uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID
   -gid n :n 为数字,这个数字是组名的 ID,亦即 GID
   -user name :name 为使用者账号名称!例如 dmtsai
   -group name:name 为组名,例如 users ;
   -nouser :寻找档案的拥有者不存在 /etc/passwd 的人!
   -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!
3. 与档案权限及名称有关的参数:
   -name filename:搜寻文件名为 filename 的档案(可使用通配符)
   -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有:
       c: 代表 byte
       k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』
   -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:
       一般正规档案 (f)
       装置档案 (b, c)
       目录 (d)
       连结档 (l)
       socket (s)
       FIFO (p)
   -perm mode :搜寻档案权限『刚好等于』 mode的档案,这个mode为类似chmod的属性值,举例来说,-rwsr-xr-x 的属性为4755!
   -perm -mode :搜寻档案权限『必须要全部囊括 mode 的权限』的档案,举例来说,
       我们要搜寻-rwxr--r-- 亦即 0744 的档案,使用-perm -0744,当一个档案的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
   -perm +mode :搜寻档案权限『包含任一 mode 的权限』的档案,举例来
       说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在!
4. 额外可进行的动作:
   -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。
   -print :将结果打印到屏幕上,这个动作是预设动作!
   eg:
       find / -perm +7000 -exec ls -l {} ; ,额外指令以-exec开头,以;结尾{}代替前面找到的内容
   | xargs
       -i  默认的前面输出用{}代替
       eg:
           find . -name "*.log" | xargs -i mv {} test4
示例:
# 按文件名查找
# 查找 /etc 目录下所有 passwd
find /etc/ -name passwd
# 按查找深度
root@dly-virtual-machine:/home/dly# find /etc -maxdepth 1 -name passwd
/etc/passwd
root@dly-virtual-machine:/home/dly# find /etc -maxdepth 2 -name passwd
/etc/cron.daily/passwd
/etc/pam.d/passwd
/etc/passwd
# 按文件大小
root@dly-virtual-machine:/home/dly# find /mnt -size 20k
root@dly-virtual-machine:/home/dly# find /mnt -size -20k    # 小于 20k
/mnt
root@dly-virtual-machine:/home/dly# find /mnt -size +20k    # 大于 20k
# 按文件类型
find /dev -type f	# 普通文件
find /dev -type b	# 块设备
find /dev -type s	# 套接字
find /dev -type p	# 管道
find /dev -type d	# 目录
# 按权限查找
##查找文件权限为404的文件
[root@localhost mnt]# find /mnt -perm 404
/mnt/file2
##查看文件权限中u位有r权限,并且o位有r权限的文件
[root@localhost mnt]# find /mnt -perm -404
/mnt
/mnt/file1
/mnt/file2
##查看文件权限中u位有r权限,或者o位有r权限的文件
[root@localhost mnt]# find /mnt -perm /404
4、mkdir
(make directory)创建文件夹
-p  递归创建目录,若父目录不存在则依次创建
-m  自定义创建目录的权限  eg:mkdir -m 777 hehe
-v  显示创建目录的详细信息
5、mv
(move)移动或重命名文件(重命名时会删除源文件,cp 不会)
-b  覆盖前做备份
-f  如存在不询问而强制覆盖
-i  如存在则询问是否覆盖
-u  较新才覆盖
-t  将多个源文件移动到统一目录下,目录参数在前,文件参数在后
eg:
   mv a /tmp/ 将文件a移动到 /tmp目录下
   mv a b 将a命名为b
   mv /home/zenghao test1.txt test2.txt test3.txt
6、pwd
(print working directory)显示当前工作目录的绝对路径。
7、rename
重命名文件
Usage:rename [-v] [-n] [-f] perlexpr [filenames]
-v(verbose)     打印被成功重命名的文件
-n(no-act)      只显示将被重命名的文件,而非实际进行重命名操作
-f(force)       覆盖已经存在的文件
perlexprPerl语言格式的正则表达式
files需要被替换的文件(比如*.c、*.h),如果没给出文件名,将从标准输入读
【常用通配符说明】
 ?    表示一个任意字符
 *    表示一个或一串任意字符
-------------------------------------------------
【常用正则表达式符号说明】
^    匹配输入的开始位置
$    匹配输入的结尾
.    匹配除换行符外的任意字符
+    匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"
[a-z]    表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z]    否定的字符区间。与不在指定区间内的字符匹配。
示例:
[root@localhost www]# rename 's/\.sh/\.php/' *        #将当前目录下.sh后缀的文件,变成.php
[root@localhost www]# rename 's/$/\.bak/' /home/www/*.php     #给www目录下的.php加上bak后缀
[root@localhost www]# rename 's/^/bak_/' *.bin     #给当前目录下的.bin后缀文件加上bak_前缀
[root@localhost www]# rename 's/\.bin$//' *       #批量删除当前目录下所有文件的.bin 后缀
[root@localhost www]# rename 's/A-Z/a-z/' *       #修改当前目录所有文件名为小写
8、rm
(remove)删除一个或多个文件或目录
-r  删除文件夹
-f  删除不提示
-i  删除提示
-v  详细显示进行步骤
9、rmdir
(remove empty directories)删除空目录
-v  显示执行过程
-p  若自父母删除后父目录为空则一并删除
10、touch
创建新的空文件,改变已有文件的时间戳属性
-a  只修改存取时间
-m  值修改变动时间
-r  eg:touch -r a b ,使b的时间和a相同
-t  指定特定的时间 eg:touch -t 201211142234.50 log.log
   -t time [[CC]YY]MMDDhhmm[.SS],C:年前两位
eg:
touch a.txt     # 新建文件 a.txt
11、tree
以树形结构显示目录下的内容
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I<范本样式> 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
-L 等级/深度
eg:
tree /home/dly -L 1     # 深度为 1
tree -a     # 显示所有文件和目录
12、basename
获取路径中的文件名或路径名
# 获取末尾的文件名或路径名
$ basename /etc/passwd
passwd
$ basename /etc/man.config
man.config
$ basename /etc
etc
# 去掉末尾的指定字符,第二个参数指定后缀名即可
$ basename /etc/man.config
man.config
$ basename /etc/man.config .config
man
# 取消指定字符
$ basename namedb.data db.data
13、dirname
显示指定路径除了文件名之外的路径前缀
dirname /usr/bin/          -> "/usr"
dirname dir1/str dir2/str  -> "dir1" followed by "dir2"
dirname stdio.h            -> "."
14、chattr、lsattr
改变(查看)文件的拓展属性
root@dly-virtual-machine:/home/dly/test# lsattr a.txt
-------------e-- a.txt
# #设置该文件不能进行任何形势的修改
root@dly-virtual-machine:/home/dly/test# chattr +i a.txt
root@dly-virtual-machine:/home/dly/test# lsattr a.txt
----i--------e-- a.txt
chattr -i nginx.conf                    #取消-i的权限设置
chattr +a /var/log/messages   #让某个文件只能往里面追加数据,但不能删除
15、file
显示文件类型
-b
    不输出文件名 (简要模式).
-c
    检查时打印输出幻数文件的解析结果.常与 -m 一起使用,用来在安装幻数文件之前调试它.
-f 命名文件
    从在参数表前的 命名文件 中读出将要检查的文件名(每行一个文件).要有 命名文件 ,或者至少有一个文件名参数; 如果要检查标准输入, 使用``-作为文件参数.
-m list
    指定包含幻数的文件列表.可以是单个文件,也可以是 用冒号分开的多个文件.
-n
    每检查完一个文件就强制刷新标准输出. 仅在检查一组文件时才有效. 一般在将文件类型输出到管道时才采用此选项.
-v
    打印程序版本并退出.
-z
    试图查看压缩文件内部信息.
-L
    (在支持符号链接的系统上)选项显示符号链接文件的原文件, 就像 ls(1) 命令的like-named 选项.
-s
    通常, file 只是试图去检查在文件列表中那些 stat(2) 报告为正常文件的文件的类型.由于读特殊文件将可能导致 不可知后果,所以这样可以防止发生问题.使用 -s 选项时 file 命令也将去读文件列表中的块特殊文件和字符特殊文件. 一般用于从原始磁盘分区中获得文件系统类型,此文件为块 特殊文件. 这个选项也导致 file 命令忽略 stat(2) 报告的文件大小,因为在有些系统中原始磁盘分区的大小报告为0.
示例:
$ file *        # 查看当前文件的类型
$ file a.txt    # 查看单个文件的类型
$ file -z test.bz2  # 查看压缩文件中的文件类型
16、md5sum
计算和校验文件的 MD5 值
用法:md5sum [选项]... [文件]...
显示或检查 MD5(128-bit) 校验和。
若没有文件选项,或者文件处为"-",则从标准输入读取。
  -b, --binary          以二进制模式读取
  -c, --check           从文件中读取MD5 的校验值并予以检查
  -t, --text            以纯文本模式读取(默认)
以下三个选项在进行校验时非常有用:
      --quiet           不为校验成功的文件输出OK
      --status          不输出任何内容,使用退出状态号显示成功
  -w, --warn            对格式不准确的校验和行进行警告
      --strict         with --check, exit non-zero for any invalid input
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出
校验和会按照RFC 1321 规范生成。当进行检查时,给出的输入格式应该和程序的输出
样板格式相同。默认的输出模式时输出一行校验和的校验结果,并有一个字符来
表示文件类型("*"代表二进制," "代表纯文本),并同时显示每个文件的名称
示例:
# 以二进制形式显示 md5
root@dly-virtual-machine:/home/dly/test# md5sum -b a.txt
d41d8cd98f00b204e9800998ecf8427e *a.txt
# 生成md5加密检验和
root@dly-virtual-machine:/home/dly/test# md5sum a.txt > a.md5
root@dly-virtual-machine:/home/dly/test# ls
1.jpg  2.jpg  a  a.md5  a.txt
root@dly-virtual-machine:/home/dly/test# cat a.md5
d41d8cd98f00b204e9800998ecf8427e  a.txt
# 检验与文件是否一致
root@dly-virtual-machine:/home/dly/test# md5sum -c a.md5
a.txt: 确定
Linux 文件和目录操作命令(一)的更多相关文章
- [转]Linux文件和目录操作命令
		转自:http://www.linuxdiyf.com/bbs/thread-416176-1-1.html 一.文件操作命令1.1 查看文件 Linux下查看文件的命令有很多,下面列出的几个是几乎所 ... 
- (2)Linux文件和目录操作命令
		简单就是高效 pwd cd -/~/.. tree–a/d/f/i/L mkdir–p/v/m touch ls –l/a//i/h/F cp –r/p/d/a mv rm –f/r/i rmdir ... 
- Linux常用命令之文件和目录操作命令
		以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ... 
- Linux 150命令之 文件和目录操作命令 ls
		文件和目录操作命令 ls 查看文件和目录查看显示详信息 ls 工具的参数 ls -l 查看文件详细信息 ls -h 查看文件的大小 ls -ld 只查看目录信息 ls –F 给不同文件加上不同标记 l ... 
- Linux文件和目录权限详细讲解
		转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ... 
- Linux 文件与目录管理
		Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ... 
- CentOS(十)--与Linux文件和目录管理相关的一些重要命令②
		在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ... 
- CentOS(九)--与Linux文件和目录管理相关的一些重要命令①
		接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ... 
- Linux - 文件和目录常用命令
		文件和目录常用命令 目标 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 ... 
随机推荐
- redis5.0 Cluster集群搭建
			安装redis sudo apt update sudo apt install build-essential tcl cd ~ mkdir document/ cd document/ curl ... 
- 一段关于用户登录 和乘法表的python代码
			用户登录代码(低配): name = 1password =11counter = 1while counter <3 : a = int(input ('name:')) #注意这里 inpu ... 
- 使用visual studio 2013读取.mat文件
			现在有一个T.mat 文件需要在c++中处理然后以.mat 或是.txt形式返回 T.mat中存储了十个cell,每个cell中会有一个不等长的数组 1.以下是相关配置过程: 参考:http://we ... 
- SOAP与REST API的爱恨情仇
			之前一直想写些RESTful相关的文章,却一直未付诸行动.直到最近接手一个新的项目,对这块重新温习,乘此机会写些相关帖子.欢迎大家评论留言,如有错漏之处,也望各位大佬不令赐教. 话不多说,干活顶上. ... 
- 云原生 - Istio可观察性之监控(四)
			作者:justmine 头条号:大数据与云原生 微信公众号:大数据与云原生 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便阅读,微信公众号已按分类排版,后续的文 ... 
- python中的变量和字符串
			一.变量 1.python变量 *变量用于存储某个或某些特定的值,它与一个特定标识符相关联,该标识符称为变量名称.变量名指向存储在内存中的值.在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解 ... 
- 编译出适合自己的nginx
			上面是解压后的nginx源码 auto目录 上面的cc目录用于编译,lib库 os目录对系统进行判断,其他所有文件都是辅助conf脚本执行 判定nginx支持哪些模块,当前操作系统有哪些特性. CHA ... 
- PC微信逆向--实现消息防撤回
			自从聊天软件消息撤回功能问世后,对于撤回的消息,我们对它一直有种强烈的好奇感."Ta刚撤回了什么?是骂我的话?还是说喜欢我?还是把发给其他人的消息误发给了我?好气呀,都看不到了...&quo ... 
- 使用 GitHub Actions 实现 Hexo 博客自动部署
			一.Hexo 相关知识点 静态博客简单,但是发布博文时稍显麻烦,一般需要下面两步: hexo clean hexo g -d // 相当于 hexo g + hexo d 如果考虑到同步源文件,还需要 ... 
- java8 Stream API笔记
			生成Stream Source的方式 从Collection和数组生成 * Collection.stream() * Collection.parallelStream() * Arrays.str ... 
