linux 基础(3)基本文件操作
目录的基本操作
在 linux 文件系统里,以斜杠 / 开头的路径是绝对路径,从根目录开始寻找;其他的路径则都是相对路径,从当前目录(working directory)开始寻找。
相对目录中常用的符号:
| 符号 | 含义 |
|---|---|
| ~ | 当前用户的主目录 |
| ~username | 某个用户的主目录 |
| . | 当前目录 |
| .. | 当前目录的上一级目录(对于根目录/来说,上一目录还是自己) |
| - | 前一个工作目录 |
常用的目录命令:
- cd:change directory。切换工作目录,没有参数就回到~
- pwd:print working directory。打印当前工作目录(绝对路径),控制台提示往往已经包括了当前目录。
- mkdir:make directory。创建新目录。-p 选项可以递归创建一串目录。如
mkdir -p a/b/c - rmdir:remove directory。删除空目录。有内容的目录需要用 rm 递归删除。同理可以用 -p 递归删除。
文件的基本操作
ls 命令
ls 意为 list,列出目录里所有文件。ls 是最最常用的指令,没有之一,所以即使将它的常用选项牢记也是值得的。
| 常用参数 | 含义 |
|---|---|
| -a | 列出隐藏文件。linux 下隐藏文件即 .开头的文件。 |
| -l | 列出文件的所有者,群组,权限,时间等信息,非常重要 |
| -d | 只列出目录本身,不列文件 |
| -f | 直接列出结果,而不是默认对文件名排序 |
| -F | 对每一项附加结构说明,比如目录在末尾添加/,可执行文件在末尾添加* |
| -h | 显示文件大小的单位 |
| -i | 列出inode号码 |
| -R | 递归显示,子目录的目录也会显示 |
| --color | 设为为always后,文件名也会根据结构着色,目录、可执行文件等都有各自的颜色 |
| --time | 设定文件的时间,显示哪一种时间 |
复制,移动和删除
复制(copy),移动(move)和删除(remove)是最常见的文件操作。
cp a.cpp des # 若des是个目录,则复制到des下
cp a.cpp des # 若des本不存在,则复制成为des,若des是文件则尝试覆盖
cp a.cpp b.cpp c.cpp des # 将三个文件复制到des下,此时des必须是目录
| 常用参数 | 含义 |
|---|---|
| -f | 强制复制。若有新文件将尝试强行删除覆盖 |
| -i | 交互模式。已有文件将询问是否覆盖 |
| -r -R | 递归复制,用于目录 |
| -u | 若目标文件比源文件旧或不存在才复制 |
| --preserve=all | 将文件的权限,所有者等等一并复制,而非默认的新建文件属性 |
| -s | 创建软链接 |
| -l | 创建硬链接 |
| -d | 复制链接文件本身,而不是默认的复制源文件 |
链接暂不介绍。
mv 移动指令的语法和参数与 cp 基本相似,不再介绍。mv a b还可以快速更改一个文件的文件名。
rm 则是删除指令。
rm a.cpp
rm b.cpp c.cpp # 删除多个文件
rm 的 -i 选项在每个文件被删除时都会弹出确认,root 在使用 rm 命令时默认 -i 以防止误操作。
注意:操作目录时一定要加上 -r, 否则无法执行!
在控制台中查看文件
能在控制台中直接输出文件内容的指令太多了,做简单的介绍。
- cat:意为concatenate。直接将整个文件以文本输出。选项支持查看特殊字符,显示行号等。
- tac:cat倒过来写,也会将文件一行一行倒着输出,用于查看结尾
- more和less:将文档载入控制台,一页一页显示,支持滚动翻页,查询等,非常好用(其实就是 man 的页面)。less的功能比more更多。
- head和tail:
head -n 10 a.cpp可以直接取出前10行,相反 tail 只取后面 10 行。 - od:以二进制方式打开文件,并以文本的形式呈现出来。
文件的修改时间
在 linux 里,每个文件拥有三个“修改时间”:
- modification time(mtime):指文件内容上一次变更的时间。
- status time (ctime): 指文件状态(权限、属性)上一次变更的时间。
- access time (atime):指文件内容上一次被打开的时间。
默认情况下,ls -l显示的是 mtime,添加参数可以查看 atime 和 ctime。
touch 指令除了创建新文件以外,也可以修改文件的时间:
touch -d "2 days ago" a.cpp # 将 atime 和 mtime 修改为两天前,也可以添加参数只修改一个
如果用 cp 复制文件,默认情况下新文件被当做一个新生的文件,atime 和 mtime 就是当前的时间。当你加上完全复制的选项时,atime 和 mtime 将和源文件相同,但是 ctime 表示文件属性的变更,他仍然是新文件诞生的时间。touch 也不能更改 ctime,想更改他需要另找手段。
文件的检索
which
which 用于快速查找命令的绝对路径
$ which ls
/usr/bin/ls
我们知道 bash 查找命令是在 PATH 里搜寻的。which 也正是在 PATH 里寻找命令的路径。
whereis
whereis可以快速查找某个文件,它并不做全盘查找,只查找某些特定的目录,因此速度很快。
$ whereis -l # 列出 whereis 查找的目录
$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc /usr/share/man/man1/gcc.1.gz
locate
locate 使用了 /var/lib 里的数据库进行检索,不用翻找硬盘,所以速度较快。但数据库是定时才更新的,所以他只能查找已经存在很久的文件,不能查找刚刚创建的文件。
$ locate passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
....
需要手动更新数据库时,使用 "updatedb" 即可,这会花费一些时间更新数据库。
find
find 是最完整 最强大的文件搜寻命令。他可以在某个目录下根据文件名,权限,修改时间等查找所有文件。
$ find / -name passwd # 查找所有 passwd 文件
$ find / -mtime 0 # 查找 24 小时内变动的文件
....
-mtime 0表示 24 小时之内,1 则表示 24 小时到 48 小时间,3 表示 72 小时到 96 小时。+3 则表示三天(96 小时)以前,-3 代表三天(72 小时)以内。
查看 find 的帮助,find 还可以筛选所属者,群组,权限,文件大小等。
linux 基础(3)基本文件操作的更多相关文章
- Linux C高级编程——文件操作之系统调用
Linux C高级编程文件操作之系统调用 宗旨:技术的学习是有限的,分享的精神是无限的. 库函数是一些完毕特定功能的函数.一般由某个标准组织制作公布,并形成一定的标准.使用库函数编 ...
- Linux基础知识之文件的权限(一)
Linux基础知识之文件权限(一) Linux优点之一就是它拥有多用户多任务的环境,在提供文件共享的同时也能保证用户文件的安全性.所以,设置文件的权限管理变得尤为重要. 权限讲解 [der@Der ~ ...
- Day2-Python基础2---集合和文件操作
一.集合操作 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 s = set([1,4,5,7,3, ...
- linux常用命令之------文件操作、文件查看、权限、打包压缩
1.一般公司把linux作为自己的应用服务器,将应用和服务器部署在上面 2.测试一般用来打包.压缩.查日志,写一个简单的shell 获得linux服务器的方式 a:网上租一台云服务器 b:安装vmwa ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Linux常见系统命令与文件操作
一.Linux常见文件操作 (1)cd /: 在Linux 系统中斜杠“/”表示的是根目录. cd / ,即进入根目录. (2)cd ~命令是,进入用户在该系统的home目录,例如xz用户,则进入/r ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
随机推荐
- 【转载】 一块GPU顶数千个CPU内核,英伟达的这个强化学习利器技术细节终于公开了
原文地址: https://mp.weixin.qq.com/s/FmFqmIqmknkpBQbNb2ioDA ============================================ ...
- maven实战教程-含视频讲解
1.背景 2.什么是maven? 通俗的说就是,不用手动拷贝jar包,帮我们管理项目结构,只需要配置坐标,自动从中央仓库下载(其他介绍请百度...). 3.Maven的安装与配置 注意:Maven在使 ...
- js 实现俄罗斯方块(二)
上篇已经看过整个游戏的样子了,本节我们来分析下整个游戏 和实现的逻辑! 首先看下游戏规则: 首先确定这几个形状原型 这7个基础图形都是由4个格子组成. 规则: 1.当所有色块填满一整行以后自动清理 ...
- mysql 重置主键
开发时总是要向数据库写入测试数据,删掉以后id(自增主键)依然还是在增长,这个问题我遇到好多次,也都没有在意. 最近这个习惯被朋友嫌弃 = =||| 就在网上搜索了下mysql重置主键的办法: ALT ...
- Wetab新标签页:内置实用小组件的浏览器扩展,重新定义浏览器主页
除了社交媒体,浏览器可能是我们日常工作.学习和生活中最常用的平台之一.然而,在使用浏览器的过程中,我们经常被书签管理.标签管理等问题所困扰.例如,书签栏混乱不堪,无法快速查找到所需书签. 为了和浏览器 ...
- 禅道项目管理系统权限绕过漏洞(QVD-2024-15263)
本文所涉及的任何技术.信息或工具,仅供学习和参考之用,请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者无关.请遵守<中华人民共和国网络安全法>. 1. 概述 1.1 基本信息 ...
- 利用net-snmp读取windows,linux,snmp设备数据(cpu,内存,网卡)
首先编译的时候configure参数加上--with-mib-modules='ucd-snmp/diskio ip-mib/ipv4InterfaceTable' 默认的配置没有这些模块,需要加上 ...
- 平衡树 -- Splay & Treap
Treap & Splay学习笔记 前置知识 -- BST 二叉搜索树,一种比较好玩的数据结构,其实现原理是运用每个点的权值构建,其中满足这样的构造方式: 若 \(value > t[x ...
- Linux 更新 TeX Live
更新 TeX Live 假设你的旧版 TeX Live 版本号为 2023,新版 TeX Live 版本号为 2024.你需要在下面的命令中相应地更改实际版本号.TeX Live 版本可以通过 tlm ...
- pc 移动端 双端切换-路由判断
该封装主要以分类形式,实现对路由的简易区分.便于项目管理. 创建好项目,勾选路由插件,会自动生成 router文件夹与index.ts . index.ts 初始内容 创建项目 自动生成的router ...