Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

《鸟哥的Linux私房菜(基础篇)》第6章 Linux的文件与目录管理 #22

Open
qunzi0214 opened this issue Nov 23, 2020 · 0 comments
Labels
read book 读书笔记

Comments

@qunzi0214
Copy link
Owner

qunzi0214 commented Nov 23, 2020

目录的相关操作

特殊的目录

  • . :代表当前目录
  • .. :代表上一层目录,根目录的上层目录还是根目录
  • - :代表前一个工作目录
  • ~ :代表当前用户的家目录
  • ~account :代表用户account的家目录

cd(change directory, 切换目录)

可以使用绝对或相对路径

pwd(print working directory, 显示目前目录)

$ pwd [-P]    #参数 -P 可以显示链接文件的真正路径

mkdir(make directory, 新建目录)

$ mkdir [-mp] dirname    #参数 -m 可以额外设置目录权限,参数 -p 是指递归创建

rmdir(remove directory, 删除空目录)

$ rmdir [-p] dirname    #参数 -p 递归删除上层空目录

关于执行文件路径的变量:$PATH

当在Linux中执行命令的时候,系统会根据PATH的设置去每一个定义的目录下查找第一个可执行的命令。这个变量的内容是由一堆目录所组成,每个目录之间用 : 隔开

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

文件和目录管理

ls

$ ls [-aAdfFhilnrRSt] [--color={never,auto,always}] [--full-time] dirname/filename
  • -a :全部文件,包括隐藏文件
  • -A :全部文件,但不包括 ... 两个目录
  • -d :仅列出目录
  • -f :直接列出结果,不进行排序
  • -F :根据文件类型、目录附加额外的信息 * 可执行 / 目录 = socket文件 | FIFO文件
  • -h :格式化文件容量,带上单位
  • -i :列出inode号码
  • -l :详细信息,包含属性权限等
  • -n :列出UID与GID而非文件拥有者、用户组
  • -r :将排序结果反向输出
  • -R :递归列举子目录及文件
  • -S :以文件大小排序
  • -t :以时间排序
  • --color=never :不依据文件特性给与颜色
  • --color=always :依据文件特性显示颜色
  • --color=auto :让系统自行判断是否给与颜色
  • --full-time :以完整时间模式输出
  • --time={atime, stime} :输出access时间或改变权限属性的时间

cp

$ cp [-adfilprsu] source destination
$ cp [-adfilprsu] source1 source2 source3 ... directory
  • -a :相当于 -dr --preserve=all
  • -d :若源文件是链接文件,则复制链接文件属性而非文件本身
  • -f :若目标文件已经存在且无法开启,则删除后再试一次
  • -i :若目标文件已经存在,覆盖前会先询问
  • -l :建立硬链接(hard link),而非复制文件本身
  • -p :连同文件的属性一起复制,而非使用默认属性
  • -r :递归复制
  • -s :复制成符号链接文件(symbolic link),即快捷方式
  • -u :目标文件比源文件旧才更新、或目标文件不存在才复制
  • --preserve-all :除了 -p 功能外,还加入 SELinux 的属性,links、xattr也复制

rm

$ rm [-fir] filename/dirname
  • -f :强制删除,忽略不存在的文件,不会出现警告信息
  • -i :交互模式,删除前会询问使用者
  • -r :递归删除

mv

$ mv [-fiu] source destination
$ mv [-fiu] source1 source2 source3 ... directory
  • -f :强制移动,如果目标文件已经存在,不会询问直接覆盖
  • -i :交互模式,当目标文件存在时,会询问是否覆盖
  • -u :若目标文件存在且source交新,才会更新

basename/dirname

$ dirname ~/Documents/my-project/test-shell/test.txt
/Users/rango/Documents/my-project/test-shell
$ basename ~/Documents/my-project/test-shell/test.txt
test.txt

cat

$ cat [-AbEnTv] filename
  • -A :相当于 -vET
  • -b :列出行号,空白行不标注行号
  • -E :打印结尾换行符 $
  • -n :打印行号,包括空白行
  • -T :将 tab^i 打印出来
  • -v :列出一些看不出来的特殊字符
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
read book 读书笔记
Projects
None yet
Development

No branches or pull requests

1 participant