首页 > 系统相关 >linux 基础(3)基本文件操作

linux 基础(3)基本文件操作

时间:2023-01-18 20:33:06浏览次数:36  
标签:文件 rm des 复制 linux cpp 操作 目录

目录的基本操作

在 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,想更改他需要另找手段。

标签:文件,rm,des,复制,linux,cpp,操作,目录
From: https://www.cnblogs.com/ofnoname/p/17056675.html

相关文章

  • 父子进程文件共享
    学习地址继承了标准输入、标准输出、标准错误;文件描述符表里面是指针,父子进程指向一致,故位置指针也一致;接续写文件,不是各自写各自的;......
  • Linux-用户
    用户切换命令   用户/用户组 ......
  • 34-ElasticSearch-初步检索的基本操作
    1、_cat用PostMan测试如下2、索引一个文档(保存)Post如果不指定id,会自动生成id,并且每次执行都是新增操作。如果带上id就是修改,并且新增版本号Put可以新增也可以修改。......
  • # yyds干货盘点 # 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
    大家好,我是Python进阶者。一、前言前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。二、需求澄清粉丝......
  • Linux下开启防火墙放行nfs,ssh,httpd,dns,chrony服务(iptables,firewalld),firewalld端口转发
     环境:CentOS7.9什么是防火墙防火墙:防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙又可以分为硬件防火墙与软件......
  • Linux下SonarQube+Runner+Scanner离线安装
     Linux下SonarQube+Runner+Scanner离线安装(一)、创建sonar数据库#创建sonar数据库mysql>createuser'sonar'@'%'identifiedby'yzt12345';QueryOK,0rowsaf......
  • Linux kernel-CFS调度器学习
    目录CFS简介任务调度器发展O(n)调度器O(1)调度器RSDL调度器CFS调度器虚拟时间vruntime源码浅析就绪队列(runqueue)Reference:CFS简介CFS,即CompletelyFairScheduler,由资......
  • Nginx linux 安装
    (一)、在线安装nginx依赖包yum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel 以下为离线安装依赖包:1.离线安装gcca.从CentOS7的系统安装......
  • LINUX学习之了解系统目录结构(一)
    前言Linux系统目录结构是一个由各种目录和文件组成的树形结构,每个目录都有特定的用途。在这篇文章中,我们将讨论Linux系统中最常见的目录,并解释它们的用途登录系统后输......
  • JS 前端大文件上传源码
    ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程......