当前位置: 首页 > news >正文

Linux文件与目录管理

#Linux系统基础在这里插入图片描述

文件与目录管理

一、常用命令

文件、目录操作命令说明
cd(cd …/ cd ~/ cd/ cd path)切换目录 cd ~等于 cd /root
ls显示目录文件
ls -l 或者 ll以详细信息的方式显示目录文件
pwd查看当前工作目录
cp (-i -r)复制文件或目录
mkdir创建目录,可以同时创建多个
mkdir -p创建有层次结构的目录
rmdir删除目录,只能删除空目录
rmdir -p删除有层次结构的目录
mkdir -m 711 test2建立权限为 rwx–x–x 的目录
mv ,mv -i(交互提示)移动文件或目录(前后路径不同),重命名(只要前后两个文件名不同)
命令格式为 mv [被移动文件1] [被移动文件2] [...] [本次移动的目的目录]
mv -u-u :若目标文件已经存在,且 source 比较新,才会更新 (update)
rm ,rm -i(交互提示)删除文件或目录▲
rm -r递归删除(删除目录必选)删除要谨慎▲
rm -f强制(force)删除,会覆盖-i选项
rm -rf强制删除,无法恢复
\rm -r ./test/忽略系统提示,直接删除
du(du -sh; du -sk;du -sm)查看文件或目录的磁盘使用情况
  • LS、tree命令
命令说明
ls [option] [file/directory]显示指定目录下的所有文件
ls显示当前目录的所有文件
ls -l显示目录的详细信息
ls -a显示包括隐藏文件在内的所有文件
ls *.txt显示当前目录下所有TXT文件
ls /opt/learn显示指定目录的所有文件
ls -R /opt/列出opt的所有目录及其子目录
tree /opt用树状结构显示目录及文件
  • pwd命令:显示当前所在目录

二、执行文件的路径变量 $PATH

$PATH 是一个特殊的环境变量,它定义了系统在查找可执行文件时会搜索的目录列表。当你在命令行输入一个命令(例如 lspython)时,系统会按照 PATH 变量中列出的目录顺序搜索该命令的可执行文件。有了这个变量的设置,我们在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令

  • 当我们在执行一个指令的时候,举例来说ls好了,系统会依照 PATH 的设定去每个 PATH 定义的目录下搜寻文件名为 ls 的可执行文件,如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行

输入 echo $PATH命令,可以查看当前$PATH环境变量的设置

[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

这里列出了当前用户可以执行的指令分别存放在什么地方,如果你的用户权限比较低,会与上述root用户的环境变量值有区别

三、cp命令

[root@study ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination)
[root@study ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
-a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明;(常用)
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;
-f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l :进行硬式连结(hard link)的连结档建立,而非复制文件本身;
-p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用)-r :递归持续复制,用于目录的复制行为;(常用)
-s :复制成为符号链接文件 (symbolic link),即『快捷方式』文件;
-u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。
--preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了。
最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!

在预设的条件中, cp 的来源目录与目的目录的权限是不同的,目的目录的拥有者通常会是指令操作者本身。

⭐️注意:举例来说, 由于我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了。所以在实际的复制文件过程中要特别注意这一点。某些需要特别注意的特殊权限文件, 例如密码文件 (/etc/shadow) 以及一些配置文件,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、执行以及文件拥有者等等), 否则,其他人是无法针对你给予的文件进行修订的动作

hard link和symbolic link的区别

在Linux系统中,硬链接(hard link)和符号链接(symbolic link,也称为软链接)是两种不同的文件链接方式。它们在行为和实现上有明显的区别。以下是硬链接和符号链接之间的主要区别:

1.硬链接(Hard Link)
  1. 指向同一文件数据

    • 硬链接是指向同一文件数据块的多个目录项。硬链接和原文件共享相同的inode号和数据块,因此它们完全等同于源文件。
  2. 文件删除

    • 只有当所有硬链接被删除后,文件的数据才会被删除。删除其中一个硬链接不会影响其他硬链接或源文件。
  3. 不允许跨文件系统

    • 硬链接只能创建在同一个文件系统内,不能跨越不同的文件系统。
  4. 不能链接目录

    • 普通用户不能创建指向目录的硬链接(这会破坏文件系统的完整性)。只有超级用户可以在某些情况下创建目录的硬链接。
  5. 空间占用

    • 创建硬链接不会占用额外的磁盘空间,因为多个链接共享同一个数据块。
2.符号链接(Symbolic Link)
  1. 指向路径

    • 符号链接是一个独立的文件,它包含指向另一个文件或目录的路径。符号链接本身有独立的inode号和数据块。
  2. 文件删除

    • 如果删除了符号链接指向的原文件,符号链接将变为悬挂链接(dangling link),指向一个不存在的路径。
  3. 允许跨文件系统

    • 符号链接可以跨越不同的文件系统,因为它只是一个包含路径的文件。
  4. 可以链接目录

    • 符号链接可以指向目录,因此可以方便地创建指向不同目录的快捷方式。
  5. 空间占用

    • 符号链接占用少量的磁盘空间来存储路径信息。
3.创建和管理链接

创建硬链接:

ln source_file hard_link_name

创建符号链接:

ln -s source_file symbolic_link_name

查看链接信息:
使用 ls -l 命令可以查看文件和链接的信息:

ls -l

硬链接示例:

$ ln file1 hardlink1
$ ls -li
12345 -rw-r--r-- 2 user user  100 Jan 1 12:00 file1
12345 -rw-r--r-- 2 user user  100 Jan 1 12:00 hardlink1

在这个例子中,file1hardlink1 共享相同的 inode 号 12345,表示它们是同一文件的硬链接。

符号链接示例:

$ ln -s file1 symlink1
$ ls -li
12345 -rw-r--r-- 1 user user  100 Jan 1 12:00 file1
12346 lrwxrwxrwx 1 user user    6 Jan 1 12:01 symlink1 -> file1

在这个例子中,symlink1 是一个指向 file1 的符号链接,symlink1 有不同的 inode 号 12346,表示它是一个独立的文件。

4.总结
  • 硬链接 是同一文件的多个目录项,指向相同的inode和数据块,不能跨文件系统,不能链接目录。
  • 符号链接 是一个独立的文件,包含指向另一个文件或目录的路径,允许跨文件系统,能够链接目录。

通过理解硬链接和符号链接的区别,你可以根据需要选择适当的链接方式来管理文件和目录。

三、basename和dirname命令

[root@study ~]# basename /etc/sysconfig/network
network <== 很简单!就取得最后的文件名~
[root@study ~]# dirname /etc/sysconfig/network
/etc/sysconfig <== 取得的变成目录名了!

相关文章:

Linux文件与目录管理

#Linux系统基础 文件与目录管理 一、常用命令 文件、目录操作命令说明cd(cd …/ cd ~/ cd/ cd path)切换目录 cd ~等于 cd /rootls显示目录文件ls -l 或者 ll以详细信息的方式显示目录文件pwd查看当前工作目录cp &#xff08;-i -r&#xff09;复制文件或目录mkdir创建目录,…...

08.组件间通信-插槽

1.默认插槽 父组件 <template><div class"father"><h3>父组件</h3><div class"content"><Category title"热门游戏列表">//默认插槽内容<ul><li v-for"g in games" :key"g.id&quo…...

在AWS上运行的EKS Elastic Kubernetes Service 创建集群Cluster,Node group, Nodes

1. 前提条件 AWS Account: https://aws.amazon.com/free/Installing KubeCtl CLI https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.htmlEKS Cluster RoleIAM Role for Node GroupVPCEC2 Key Pair which can be used to SSH to the worker nodesAWS …...

10款堪称神器的宝藏软件,相见恨晚

今天给大家带来10款堪称神器的宝藏软件&#xff0c;每一个都非常好用&#xff0c;让你直呼相见恨晚。 1、知犀思维导图 知犀思维导图是大家组织信息、梳理思维的重要利器&#xff0c;它可以帮助我们以图形化的方式呈现思维过程&#xff0c;让整体思路变得清晰直观。通过使用知…...

为什么会选择厚膜作为芯片电阻?

引线键合 引线键合是集成电路 &#xff08;IC&#xff09; 或其他半导体器件与其封装之间互连的常见解决方案。它还可用于将IC连接到其他电子设备或将其他厚膜电路相互连接。引线键合通常被认为是最具成本效益和最灵活的互连技术&#xff0c;用于组装大多数半导体封装。引线键合…...

基本药物采购使用

--医院采购基本药物金额数 select sum(采购基本药物金额数) 采购基本药物金额数 from ( select sum(t.实收金额) 采购基本药物金额数 from 住院费用记录 t,药品规格 a where t.收费细目ida.药品id and t.记录状态1 and a.基本药物基药 and t.收费细目id not in( …...

k8s小型实验模拟

&#xff08;1&#xff09;Kubernetes 区域可采用 Kubeadm 方式进行安装。&#xff08;5分&#xff09; &#xff08;2&#xff09;要求在 Kubernetes 环境中&#xff0c;通过yaml文件的方式&#xff0c;创建2个Nginx Pod分别放置在两个不同的节点上&#xff0c;Pod使用hostPat…...

leetcode168:Excel表列名称

题目链接&#xff1a;168. Excel表列名称 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string convertToTitle(int columnNumber) {string ss1;int MOD 0;if(columnNumber < 26){ss1 (columnNumber A - 1);return ss1;}while(columnNumber){int MO…...

排课系统1

参考:https://gitee.com/lequal/CourseArrange 软件技术栈 当然,我会逐一解释这些技术栈的含义:### 前端技术栈1. **Vue2.x**:- Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面和单页应用程序(SPA)。- 2.x 表示 Vue.js 的第二个主要版本,它提供了一套响应…...

uni-popup

UniPopup是uni-app框架中的一个轻量级组件&#xff0c;它提供了一种便捷的方式来显示弹出窗口&#xff08;如对话框、通知、选择器等&#xff09;。uni-popup可以帮助开发者在不同平台&#xff08;如Web、H5、小程序等&#xff09;上快速实现一致的用户体验&#xff0c;支持自定…...

torchmetrics,一个无敌的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个无敌的 Python 库 - torchmetrics。 Github地址&#xff1a;https://github.com/Lightning-AI/torchmetrics 在深度学习和机器学习项目中&#xff0c;模型评估是一个至关重要的环节。为了准确…...

如何快速上手Python,成为一名数据分析师

如何快速上手Python&#xff0c;成为一名数据分析师 成为一名数据分析师需要掌握Python编程语言以及数据分析相关的知识和技能。以下是一些步骤和建议&#xff0c;帮助你快速上手Python并成为一名数据分析师&#xff1a; 学习Python基础知识&#xff1a;首先&#xff0c;你需要…...

MC服务器怎么搭建

MC服务器怎么搭建?随着《我的世界》&#xff08;Minecraft&#xff0c;简称MC&#xff09;的火爆&#xff0c;越来越多的玩家和社区开始搭建自己的MC服务器&#xff0c;与朋友共享创造的乐趣。但搭建一台稳定、高效的MC服务器并不是一件容易的事。今天&#xff0c;我们就来聊聊…...

JavaScript正则表达式

search()方法 用来检索与正则表达式相匹配的子字符串&#xff0c;并返回子字符串开始的位置。若结果为-1则表示没有与之匹配的子字符串例&#xff1a; var str"well pemper" var str1str.search(/em/g) console.log(str1) //返回6replace()方法 用于替换一个与正…...

Redis实战宝典:基础知识、实战技巧、应用场景及最佳实践全攻略

背景 在Java系统实现过程中&#xff0c;我们不可避免地会借助大量开源功能组件。然而&#xff0c;这些组件往往功能丰富且体系庞大&#xff0c;官方文档常常详尽至数百页。而在实际项目中&#xff0c;我们可能仅需使用其中的一小部分功能&#xff0c;这就造成了一个挑战&#…...

[FFmpeg学习]初级的SDL播放mp4测试

在之前的学习中&#xff0c;通过AVFrame来保存为图片来认识了AVFrame&#xff0c; [FFmpeg学习]从视频中获取图片_ffmpeg 获取图片-CSDN博客 在获取到AVFrame时&#xff0c;还可以调用SDL方法来进行展现&#xff0c;实现播放效果。 参考资料 SDL&#xff0c;ffmpeg实现简单…...

情景题之小明的Linux实习之旅:linux实战练习1(下)【基础命令,权限修改,日志查询,进程管理...】

小明的Linux实习之旅&#xff1a;基础指令练习情景练习题下 前景提要小明是怎么做的场景1&#xff1a;初识Linux&#xff0c;创建目录和文件场景2&#xff1a;权限管理&#xff0c;小明的权限困惑场景3&#xff1a;打包与解压&#xff0c;小明的备份操作场景4&#xff1a;使用G…...

k8s 证书更新

如何使用脚本更新Kubernetes集群证书 引言 Kubernetes集群中&#xff0c;由kubeadm初始化的证书有效期默认为一年。当这些证书接近或已经超过有效期时&#xff0c;它们必须被更新以保证集群的正常运作。本文将介绍如何使用特定脚本来更新这些证书&#xff0c;将它们的有效期延…...

Linux操作系统学习:day01

内容来自&#xff1a;Linux介绍 视频推荐&#xff1a;Linux基础入门教程-linux命令-vim-gcc/g -动态库/静态库 -makefile-gdb调试 day01 基础概念 Linux 是 UNIX 操作系统的一个克隆系统, 但是Linux是开源的。 Linux是一个基于文件的操作系统。操作系统需要和硬件进行交互…...

【Oracle生产运维】数据库服务器负载过高异常排查处理

说明 在Oracle数据库运维工作中&#xff0c;经常会遇到Oracle数据库服务器平均负载&#xff08;load average&#xff09;突然异常升高&#xff0c;如果放任不管&#xff0c;严重的情况下会出现数据库宕机、服务器重启等重大故障。因此&#xff0c;当发现数据库服务器平均负载…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...