Linux入门(四)- 文件目录操作命令

目录切换命令

pwd

用于显示用户当前所处的工作目录。

选项

  • -L:显示逻辑路径,当在链接目录内,显示链接目录路径,默认显示逻辑路径
  • -P:显示物理路径,当在链接目录内,显示链接指向的物理目录

我们以/var下的mail目录举例,/var/mail为/var/spool/mail的链接目录,即:/var/mail -> /var/spool/mail

cd /var/mail
pwd #输出:/var/mail
pwd -L #输出:/var/mail
pwd -P #输出:/var/spool/mail

cd

用于切换目录。Linux中同样有相对路径和绝对路径,同时,还有各种符号表示的常用路径。

选项

  • -P:当切换到链接目录内时,直接切换到链接指向的物理目录
  • -L:当切换到链接目录内时,就切换到链接目录内
cd -P /var/mail
pwd #输出:/var/spool/mail
cd -L /var/mail
pwd #输出:/var/mail

特殊目录符号

  • ~:home目录
  • -:返回上次所在目录
  • ..:上级目录
  • .:当前目录

文件目录查找命令

ls

用于显示目录中的文件信息。

选项

  • --sort=WORD:可以根据size、time、version和extension进行排序,默认按照名称排序输出
  • -S:根据size排序
  • -t:根据修改时间排序
  • -r:逆序输出
  • -l:以长格式输出,可以直接使用ll别名命令执行
  • s,--size:显示文件大小
  • -a, --all:输出所有文件,包括隐藏文件
  • -A,--almost-all:输出所有文件,包括隐藏文件,但是不包括...
  • --author:和-l共用,输出文件作者
  • --block-size=SIZE:以指定的单位输出文件大小(只保留整数),单位为G、M、KB,需要和-l共用
  • -h:以人性化的方式输出文件大小
  • -1:每行只显示一个文件
  • -d:显示目录属性信息
  • -R:递归输出子目录的文件
  • -F:在文件后输出文件类型,/目录,*可执行文件,=socket文件,|FIFO文件,@符号链接文件
ls --sort=time #输出:dir_test1  print.sh  test.20210715.txt  shell_log.log  first.sh  dir_test
ls --sort=time -r #输出:dir_test  first.sh  shell_log.log  test.20210715.txt  print.sh  dir_test1

ll 
#输出:
#drwxr-xr-x 3 root root 4096 7月  16 10:39 dir_test
#drwxr-xr-x 2 root root 4096 8月  19 22:04 dir_test1
#-rw-r--r-- 1 root root   50 8月   9 18:05 first.sh
#-rw-r--r-- 1 root root  977 8月   8 22:46 ll.txt

ls -s #输出:4 dir_test  4 dir_test1  4 first.sh  4 ll.txt  4 ls.txt

ll --block-size=M
#输出
#drwxr-xr-x 3 root root 1M 7月  16 10:39 dir_test
#drwxr-xr-x 2 root root 1M 8月  19 22:04 dir_test1
#-rw-r--r-- 1 root root 1M 8月   9 18:05 first.sh
#-rw-r--r-- 1 root root 1M 8月   8 22:46 ll.txt

ls -1
#输出
#dir_test
#dir_test1
#first.sh
#ll.txt

ll -d /etc #输出:drwxr-xr-x. 77 root root 4096 8月  22 11:15 /etc

ls -R
#输出
#.:
#dir_test  dir_test1  first.sh  ll.txt  ls.txt  oh_no.txt  test.txt
#
#./dir_test:
#test_son
#
#./dir_test/test_son:
#
#./dir_test1:

ls -F /bin/ #输出:dd*   gsoelim@   mapscrn*   paste*

文本文件编辑命令

cat

用于查看纯文本内容,会输出全部的内容,所以适合查看内容较少的文本。

常用选项

  • -b:输出行号,跳过空行。
  • -n,--number:输出行号,空行也输出行号。
  • -E:在行位输出$符号
  • -s,--squeeze-blank:压缩连续多行的空行为一行空行
  • -T:将tab以^I输出

more

用于查看纯文本内容,会分页显示文本的内容,所以适合查看内容较多的文本。

常用选项

  • -number:每页输出number行文本内容
  • -d:在最下面输出提示信息"[Press space to continue, ‘q’ to quit.]"
  • +number:从第number行开始输出文本内容
  • -p:全屏输出内容
  • -s:将多行空行压缩成一行空行显示
  • +/pattern:搜寻字符串pattern,然后从该字符串前两行之后开始显示

head

用于查看纯文本文档的前N行。

选项

  • -n,--lines=NUMBER:输出文档前n行内容,默认输出10行
  • -c,--bytes=NUMBER:输出文档前n字节内容
  • -v:在开始处输出文件名,如:“==> cat.txt <==”

tail

用于查看纯文本文档的最后N行内容,结合-f选项,常用于查看系统日志输出。

选项

  • -c,--bytes=NUMBER:输出文档最后n字节内容
  • -n,--lines=NUMBER:输出文档最后n行内容,默认输出10行
  • -f,--follow[={descriptor|name}]:持续输出文档写入的内容,当follow值为descriptor时,根据文件描述符跟踪文件,如果文件改名或删除,停止跟踪。当follow值为name时,根据文件名跟踪文件,当文件删除后再创建同名文件,仍可以跟踪。默认follow值为descriptor。
  • --retry:当一个文件无法访问时,保持重试读取。
  • -F:等同于--follow=descriptor --retry
  • -v:在开始处输出文件名

tr

格式为tr [OPTION]... SET1 [SET2],替换文本文件中的字符。

选项

  • -d:删除SET1中包含的字符
  • -c:把不在SET1中的字符替换为SET2
  • -s,--squeeze-repeats:删除SET1中出现的重复字符,只保留1个
  • -t:将SET1中字符用SET2对应位置的字符进行替换,一般缺省为-t

wc

用于统计文本的行数、字数、字节数,默认输出为:行数、字数和字节数。

选项

  • -c, --bytes:输出字节数
  • -m, --chars:输出字符数
  • -l, --lines:输出行数
  • -L, --max-line-length:输出最长行的长度
  • -w, --words:输出词数

cut

用于按列提取文本字符。

选项

  • -b, --bytes=LIST:输出前LIST字节内容,可以为第n个字节或n~m之间的字节内容
  • -c, --characters=LIST:输出前LIST字符内容,可以为第n个字符或n~m之间的字符内容
  • ```-d, --delimiter=DELIM``:以DELIM作为分隔符来分隔列
  • -f, --fields=LIST:输出指定列数的内容
  • -s, --only-delimited:只输出包含分隔符的行

diff

比较多个文本文件的差异。diff的选项非常多,此处仅列出常用选项,其余选项可参考帮助手册。

选项

  • -q, --brief:只输出文件是否不同,不输出差异的内容
  • -s, --report-identical-files:当文件不同时,输出差异内容,相同时,输出提示语
  • -c, -C NUM, --context[=NUM]:按照不同文件,输出差异内容,同时输出差异内容的NUM行上下文,默认上下各输出3行
  • -u, -U NUM, --unified[=NUM]:将差异内容作为统一文本内容,输出差异内容的NUM行上下文,默认上下各输出3行
  • -y, --side-by-side:将内容分两列对比输出

文件目录管理命令

mkdir

创建空白目录。

选项

  • -p, --parent:如果需要创建父目录,则创建父目录,没有该选项时,创建父目录会报错
  • -v, --verbose:输出每个目录创建的结果信息
  • -m, --mode=MODE:创建目录时设置权限

cp

用于复制文件和目录。

选项

  • -p:保留原始文件的属性
  • -d:如果是链接文件,则保留该链接文件的属性
  • -r:递归复制目录
  • -a:相当于-pdr

mv

用于剪切文件或文件重命名。

格式

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

选项

  • -f, --force:覆盖时不再确认
  • -i, --interactive:覆盖时需要确认确认
  • -n, --no-clobbe:不覆盖已存在的文件
  • -u, --update:只有目标文件不存在或者源文件比目标文件更新时才剪切
  • -t, --target-directory=DIRECTORY:把所有SOURCE复制到DIRECTORY中

rm

删除文件

选项

  • -f, --force:强制删除不做提示
  • -i:删除时需要确认
  • -r, -R, --recursive:递归删除目录内的所有文件
  • -d, --dir:删除空目录

打包压缩命令

tar

用于文件打包压缩或解压操作。格式为:tar [OPTION...] [FILE]...

常用选项

  • -c:创建压缩文件
  • -x:解开压缩文件
  • -t:查看压缩包内有哪些文件
  • -f:压缩或解压目标文件,必须放在选项的最后一位
  • -z:用Gzip压缩或解压,
  • -j:用bzip2压缩或解压
  • -v:显示压缩或解压的过程
  • -p:保留原始的权限与属性
  • -P:使用绝对路径来压缩
  • -C:指定解压到的目录,不指定默认解压到当前目录

示例

# 把test1和test2打包为test.tar
tar -cf test.tar test1 test2

# 查看test.tar内有哪些文件
tar -tf test.tar

# 打包并压缩dir_test1目录
tar -czf test2.tar.gz dir_test1

# 解压test2.tar.gz到test目录
tar -xzf test2.tar.gz -C test/

文本搜索

grep

用于文本搜索匹配

常用选项

  • -c:仅显示找到的行数
  • -i:忽略大小写
  • -n:显示行号
  • -v:反向选择,列出没有关键字的行

示例

# 输出test.txt中包含test关键字的行,并显示行号
grep -n test test.txt

文件查找

用来查找指定目录中的文件,多个选项可以一起使用。

find

选项

  • -name:匹配名称
  • -user:匹配所有者
  • -type:匹配文件类型,b设备块、d目录、c字符设备、p管道、l链接文件、f文本文件
  • -size +-SIZE:匹配文件大小,单位为:cbyte、kKB、MMB、GGB
  • -mtime +-n:匹配修改内容的时间,n为天数,-n为n天以内,+n为n天以前
  • -atime +-n:匹配访问文件的时间
  • -ctime +-n:匹配修改文件权限的时间
  • -exec command {} \;:对查找的结果进行下一步处理,{}为搜索出的文件集合,-exec需要以空格\;结尾。

示例

# 查找当前目录包含test关键字的文件
find ./ -name '*test*'
# 查找当前目录大于100M的文件
find ./ -size +100M
# 查询当前目录小于10byte的文本文件
find ./ -type f -size +10c
# 把查出的文件复制到目录a中
find ./ -type f -size +1000c -exec cp -a {} ./a/ \;

参考:
《Linux就该这么学》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值