目录及文件操作

目录标识

  • / 代表根目录
  • ~ 表示为 home directory (root用户为 /root,普通用户为 /home/username)
  • . 则是表示目前所在的目录
  • .. 则表示目前目录位置的上一层目录

切换目录

  • cd dir 改变目录

列出目录/文件

  • ls 列出当前目录文件及子目录
  • ls -l 显示文件和目录的详细资料,简写 ll
  • ls -a 显示当前目录下包括影藏文件在内的所有文件列表
  • ls -lSr 以尺寸大小排列文件和目录
  • ls -ltr 按修改时间列出文件和文件夹详细信息
  • ls -li 显示文件的 inode 信息

创建目录

  • mkdir dir1 dir2 同时创建两个目录
  • mkdir -p path/to/dir 递归创建一个目录树
  • mkdir -m 700 dir 创建目录并指定目录权限
  • mkdir -p -m 750 path/to/dir 递归创建目录并指定目录权限
  • rmdir -p path/to/dir 递归删除空目录

创建文件

  • touch file 创建文件
  • touch -t 0712250000 file 修改一个文件或目录的时间戳 - (YYMMDDhhmm)

删除目录/文件

  • rm file1 file2 删除一个文件
  • rm -rf dir 删除一个目录并同时删除其内容,不经确认

拷贝/移动/重命名

  • cp origin path/to/target 复制一个文件
  • cp dir/* . 复制一个目录下的所有文件到当前工作目录
  • cp -r origin target 复制一个目录及其所有文件
  • mv origin target 移动/重命名文件

提示

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。

在 Linux 下使用 cp 命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:

# 没有提示按Y、传递了目录属性、没有略过目录。
\cp -r -a aaa/* /bbb
# 另一种解决方案
echo y | cp ./a/*  ./b

参考: linux cp复制时不提示确认信息

警告

如果把一个文件复制到一个目标文件中,而目标文件已经存在,覆盖文件的时候会有提示,如果选择 Y,那么,该目标文件的内容将被破坏。

其他相关命令

  • pwd 显示工作路径
  • tree 显示文件和目录由根目录开始的树形结构

  • stat file 用于显示文件的状态信息。stat命令的输出信息比 ls 命令的输出信息要更详细。
  • file file 用来探测给定文件的 mime type 类型

  • du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
  • du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress