linux命令—文件管理

!/bin/bash

http://www.runoob.com/linux/linux-command-manual.html

# touch创建文件
touch linuxFile.txt
# mktemp缓存文件
mktemp tmp.txt
# cat文件复制、内容清除、内容查看
# 复制文件
# 有行号(含空格)
cat -n linuxFile.txt > linuxFile2.txt 
# 有行号(不含空格)
cat -b linuxFile.txt > linuxFile3.txt 
# 无行号
cat -s linuxFile.txt > linuxFile4.txt 
cat -v linuxFile.txt > linuxFile5.txt 

# 清空文件内容
cat /dev/null > linuxFile5.txt

# 查看内容
cat linuxFile.txt
# cp复制文件,或目录
# 参数说明:
# -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
# -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
# -f:覆盖已经存在的目标文件而不给出提示。
# -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
# -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
# -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
# -l:不复制文件,只是生成链接文件。

# 复制文件
cp linuxFile5.txt linuxFile7.txt

# 复制目录(注意:复制目录时,必须使用参数" -r ",或" -R ")
cp -r doc1 doc2
# mv修改文件名称,或修改文件所在目录

# 修改文件名称
mv linuxFile.txt linuxFileTmp.txt

# 修改文件所在目录(注意:目录必须已经存在)
mv linuxFileTmp.txt doc1/
# rm删除文件,或目录
# 参数:
# -i 删除前逐一询问确认。
# -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
# -r 将目录及以下之档案亦逐一删除。

# 删除文件
rm linuxFile7.txt 
rm -r linuxFile7.txt 

# 删除目录(注意:删除目录时,必须使用参数" -r ",或" -R ")
rm -r doc1
# cmp比较两个文件是否有差异
# 参数:
# -c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
# -i<字符数目>或--ignore-initial=<字符数目>  指定一个数目。
# -l或--verbose  标示出所有不一样的地方。
# -s或--quiet或--silent  不显示错误信息。
# -v或--version  显示版本信息。
# --help  在线帮助。

cmp linuxFile.txt linuxFile2.txt
# diff比较文件的差异
# 参数:
# -<行数>  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
# -a或--text  diff预设只会逐行比较文本文件。
# -b或--ignore-space-change  不检查空格字符的不同。
# -B或--ignore-blank-lines  不检查空白行。
# -c  显示全部内文,并标出不同之处。
# -C<行数>或--context<行数>  与执行"-c-<行数>"指令相同。
# -d或--minimal  使用不同的演算法,以较小的单位来做比较。
# -D<巨集名称>或ifdef<巨集名称>  此参数的输出格式可用于前置处理器巨集。
# -e或--ed  此参数的输出格式可用于ed的script文件。
# -f或-forward-ed  输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
# -H或--speed-large-files  比较大文件时,可加快速度。
# -l<字符或字符串>或--ignore-matching-lines<字符或字符串>  若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
# -i或--ignore-case  不检查大小写的不同。
# -l或--paginate  将结果交由pr程序来分页。
# -n或--rcs  将比较结果以RCS的格式来显示。
# -N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示:
# Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
# -p  若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
# -P或--unidirectional-new-file  与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
# -q或--brief  仅显示有无差异,不显示详细的信息。
# -r或--recursive  比较子目录中的文件。
# -s或--report-identical-files  若没有发现任何差异,仍然显示信息。
# -S<文件>或--starting-file<文件>  在比较目录时,从指定的文件开始比较。
# -t或--expand-tabs  在输出时,将tab字符展开。
# -T或--initial-tab  在每行前面加上tab字符以便对齐。
# -u,-U<列数>或--unified=<列数>  以合并的方式来显示文件内容的不同。
# -v或--version  显示版本信息。
# -w或--ignore-all-space  忽略全部的空格字符。
# -W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。
# -x<文件名或目录>或--exclude<文件名或目录>  不比较选项中所指定的文件或目录。
# -X<文件>或--exclude-from<文件>  您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件。
# -y或--side-by-side  以并列的方式显示文件的异同之处。
# --help  显示帮助。
# --left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
# --suppress-common-lines  在使用-y参数时,仅显示不同之处。

diff linuxFile.txt linuxFile2.txt
# file辨识文件类型
# 参数:
# -b  列出辨识结果时,不显示文件名称。
# -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
# -f<名称文件>  指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。
# -L  直接显示符号连接所指向的文件的类别。
# -m<魔法数字文件>  指定魔法数字文件。
# -v  显示版本信息。
# -z  尝试去解读压缩文件的内容。
# [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

file linuxFile.txt
# find在指定目录下查找文件
# 参数说明 :
# find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
# expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
# -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
# -amin n : 在过去 n 分钟内被读取过
# -anewer file : 比文件 file 更晚被读取过的文件
# -atime n : 在过去 n 天过读取过的文件
# -cmin n : 在过去 n 分钟内被修改过
# -cnewer file :比文件 file 更新的文件
# -ctime n : 在过去 n 天过修改过的文件
# -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
# -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
# -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
# -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
# -type c : 文件类型是 c 的文件(b块设备文件;d目录;c字符设备文件;p管道文件;l符号链接文件;f普通文件)。

# 找出后缀为txt的所有文件
find *.txt

# 找出名称为linuxFile5.txt的文件
find linuxFile5.txt

# 找出内容为空的文件(注意:必须设置目录路径," ./ "为当前目录)
find ./ -empty

# 找出文件大小为0的文件(注意:必须设置目录路径," ./ "为当前目录)
find ./ -size 0


# 使用exec或ok来执行shell命令(好像无效???应该使用xargs代替;直接使用" | "处理)
find . -type f -name "*.zip" | ls -l
find . xaa | xargs rm
# less内容查看(注意:创建新屏查看,q键退出查看)
less linuxFile.txt
# more内容查看(当前屏查看)
more linuxFile.txt
# cat查看文件内容(当前屏查看)
cat linuxFile.txt

你可能感兴趣的:(脚本学习)