002 Linux 文件与目录命令的必会姿势!

文件及目录的路径切换、显示、创建、复制、移动和删除操作的常用姿势,必会!因为这些命令是使用 Linux 系统进行工作的基础,是摆脱小白的第一步,是构建大厦的基石!
发现锅锅真是个话痨啊!那锅锅就不要脸了真就再比比两句啦,承蒙不要嫌弃(=_=)。这篇文章不是 Linux 相关命令使用字典或百科全书,这一篇文章里总结工作实践中会用到的关于文件和目录操作常用的基础命令,这些命令真的很重要!

  • cd / # 进入主机根目录。
  • cd ~ # 进入用户根目录。
  • cd .. # 返回爸爸(上级)目录,注 . 代表当前目录。
  • cd ../.. # 返回爷爷(上级的上级)目录,可以以此类推。
  • cd – # 返回上次目录。来回在两个目录中切换时很好用。
  • cd /home/root/temp # 使用绝对路径,从根目录开始,到temp目录。

  • ls # 显示当前目录下所有文件和目录。

  • ls -l # 显示文件详情(文件名称、文件类型、权限、拥有者、文件大小等详细列出)。
  • ll # 等同 ls -l。
  • ls -al # 等同 [ll -a] 显示所有文件及详情,(ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)。
  • ls -lh # 等同 [ll -h] 以适合的单位显示文件大小,如kb、Mb、Gb。-h 这个参数在linux中很有用,基本所有需要统计大小的命令中都可以用它,如df -h, du -h,free -h。
  • ls -lhs # 对文件或者目录进行从大到小的排序
  • ls -lrt #按照文件修改时间升序,从上到倒下时间越来越近
    详细解释:
    -l use a long listing format 以长列表方式显示(详细信息方式)
    -t sort by modification time 按修改时间排序(最新的在最前面)
    -r reverse order while sorting (反序)
  • ls -lt #按照时间降序(默认:最新修改的排在前面)

pwd

  • pwd # 查看当前所在路径。
  • pwdx pid #可配合查找应用的安装路径。如查找 zookeeper 的安装路径 ,[ps –ef|grep zookeeper],找到 pid (进程号),接着 [pwdx pid],即可找到 zookeeper 安装路径。

touch

  • touch info.log #在当前目录下创建一个 info.log 的空文件。
  • touch {01..10}info.log #注:是两个点号。批量创建文件,01info.log、02info.log、…、10info.log

mkdir

  • mkdir dirs #在当前目录下创建空目录 dirs。
  • mkdir log temp data # 同时创建多个同级目录,目录名以空格分开。
  • mkdir -p parent/child/logs #一次性创建多级目录,在当前目录下创建 parent 目录,在 parent 目录下创建 child 目录,在 child 目录下创建 logs 目录。

  • cp info.log tempInfo.log #将 info.log 文件拷贝一份,拷贝后的文件名为 tempInfo.log。

  • cp -R parent tempParent #将 parent 目录拷贝一份,拷贝后的目录名为 tempParent。一般加参数 -R(或参数-r,-r/R 表示递归),因为目录下一般会有子目录,否则无法成功拷贝。

  • mv /home/docker/info.log /home/temp/info.log #这个示例里文件名没变,就是搬移下文件位置。

  • mv /home/docker/info.log /home/temp/tmp.log #这个示例里,搬移了文件位置且变更了文件名。
  • mv info.log tmp.log #这个示例里等同于对文件进行了重命名。
  • mv a b c /tmp #一次移动多个文件或到某个目录下

  • rm [文件名] #删除文件,文件不存在会有报错提示。

  • rm -f [文件名] # (常用命令)删除文件,-f,忽略报错信息,不提示。
  • rm -rf [目录名] # (常用命令)递归删除目录。
  • rm -rf [文件1] [文件2] [目录1] [目录2] # (常用命令)删除多个文件和目录。
  • rm -rf .log # 删除当前目录所有.log后缀结尾的文件, 是匹配符表示匹配所有字符。
  • rm -i *.log # 删除所有以结尾log文件时,会逐一询问按 y 确认删除,n 不删除。
cd ${log_path}
rm -rf *

目标是转到日志目录并删除所有日志。隐患:当目录不存在时,悲剧就发生了!

[En]

The goal is to go to the log directory and delete all the logs. Hidden trouble: when the directory does not exist, the tragedy occurs!

不跑路,有啥规避方案?

cd ${log_path}
rm -rf *

改用逻辑与 && 进行连接,合并成一句,前半句逻辑失败,后半句命令不执行:

cd ${log_path} && rm -rf * 

完整的日志清理 shell 脚本如下:

#!/bin/bash
base_home="/home/apps"
log_path=${base_home}/logs
cd ${log_path} && rm -rf *

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

Original: https://www.cnblogs.com/bilahepan/p/15796032.html
Author: 不甩锅的码农
Title: 002 Linux 文件与目录命令的必会姿势!

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524178/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mysql 安全加固经验总结

    本文为博主原创,转载请注明出处: 1.内网部署Mysql mysql 数据库在使用过程中,需要给服务提供连接和访问的权限,而不需要进行公网连接和访问,所以在安全环境和现网环境部署m…

    Linux 2023年6月14日
    095
  • Power Outage

    由于Covid-19的原因一直是work from home, 在几天前家里的电表有问题需要人来维修,在这期间会停电大概半小时操作,虽然是wfh,但是还是要保障工作的正常进行,保守…

    Linux 2023年6月7日
    0109
  • Centos系统部署nginx1.18.0

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、 安装依赖包 yum –y install gcc gcc-c++ openssl openssl-d…

    Linux 2023年5月27日
    097
  • Tomcat启动乱码

    1、找到安装的tomcat的conf目录2、找到logging.properties配置文件3、在文件中找到 java.util.logging.ConsoleHandler.en…

    Linux 2023年6月7日
    0104
  • 模型层

    准备阶段 django自带的sqlite3数据库,功能很少,并且针对日期类型不精确 准备步骤 数据库正向迁移命令(将类操作映射到表中) python3 manage.py make…

    Linux 2023年6月7日
    090
  • Nginx 配置文件说明

    bash;gutter:true;</p> <h1>定义Nginx运行的用户和用户组</h1> <p>user www www;&l…

    Linux 2023年6月8日
    094
  • jarwarSpringBoot加载包内外资源的方式,告别FileNotFoundException吧

    工作中常常会用到文件加载,然后又经常忘记,印象不深,没有系统性研究过,从最初的war包项目到现在的springboot项目,从加载外部文件到加载自身jar包内文件,也发生了许多变化…

    Linux 2023年6月6日
    0102
  • Java实现动态数组【数据结构与算法】

    1、数组 类型固定、长度固定 连续的内存空间 顺序存储、随机读取 查询快、新增删除慢。 最好初始化的时候就指定数组大小。这样就可以避免一定的数组扩容出现的内存消耗。 import …

    Linux 2023年6月14日
    095
  • Redis 内存压缩原理

    Redis 无疑是一个大量消耗内存的数据库,因此 Redis 引入了一些设计巧妙的数据结构进行内存压缩来减轻负担。ziplist、quicklist 以及 intset 是其中最常…

    Linux 2023年5月28日
    096
  • Linux系统Oracle常见操作

    1.1 登录默认数据库 首先切换到oracle用户,用数据库默认管理员登录。 [root@tsm-zh01 ~]# su – oracle [oracle@redhat ~]$ l…

    Linux 2023年6月6日
    076
  • Docker 容器中安装 Docker

    本文讲的是在Docker中安装Ubuntu容器,然后在这个Ubuntu容器中再安装Docker。或许这样可以省下买服务器的钱,当然这只是为了学习测试使用,真正项目上还是需要买服务器…

    Linux 2023年6月14日
    0100
  • Linux软件包常见的几种下载、安装方法

    如果服务器是处于在线状态,在使用默认下载源是外国的情况下,安装更新软件包往往会比较痛苦的存在,下载了许久来一个超时就gg了。国内有许多镜像源,完美的解决了这个问题。 对于rpm系列…

    Linux 2023年6月6日
    086
  • Spring Boot 项目启动错误 提示 java.lang.ClassNotFoundException org.apache.log4j.Logger

    问题描述 spring boot项目升级到2.x,启动时出现错误提示:java.lang.ClassNotFoundException: org.apache.log4j.Logg…

    Linux 2023年6月14日
    093
  • VR一体机如何退出FFBM(QFIL)

    前文介绍了通过fastboot命令擦除misc分区,从而退出FFBM的方法。这个方法比较简便,但有不灵的时候,fastboot erase misc命令执行失败,如下图所示。 er…

    Linux 2023年6月7日
    0104
  • Java50个关键字之static

    关键字static主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的…

    Linux 2023年6月7日
    097
  • 自动化集成:Kubernetes容器引擎详解

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作; 本篇文章主要描述Kubernetes引擎用法。 …

    Linux 2023年5月27日
    0113
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球