Linux文件管理相关命令-3

Linux文件管理相关命令整理记录

命令含义命令含义命令含义
slocate查找文件或目录split将一个文件分割成数个tee读取标准输入的数据,并将其内容输出成文件
tmpwatch删除暂存文件touch修改文件或者目录的时间属性umask指定在建立文件时预设的权限掩码
which查找文件cp复制文件或目录whereis查找文件
mcopy复制 MSDOS 格式文件到 Linux 中mshowfat显示MS-DOS文件在FAT中的记录rhmask对文件进行加密和解密操作
scp用于 Linux 之间复制文件和目录awk强大的文本分析工具read从标准输入读取数值
updatedb创建或更新 slocate/locate 命令所必需的数据库文件

【slocate】查找文件或目录

slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
语法:

slocate [-u][--help][--version][-d <目录>][查找的文件]

参数说明:

参数说明
-d<目录>或–database=<目录>指定数据库所在的目录
-u更新slocate数据库

实例:

#显示文件名中含有关键字"fdisk"的文件路径信息:
slocate fdisk

【split】将一个文件分割成数个

该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
语法:

split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

参数说明:

参数说明
-<行数>指定每多少行切成一个小文件
-b<字节>指定每多少字节切成一个小文件
-C<字节>与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
[输出文件名]设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

实例:

#将README文件每六行分割成一个文件:
split -6 README#以上命令执行后,指令"split"会将原来的大文件"README"切割成多个以"x"开头的小文件。
#而在这些小文件中,每个文件都只有6行内容。

【tee】读取标准输入的数据,并将其内容输出成文件

语法:

tee [-ai][--help][--version][文件...]

参数说明:

参数说明
-a或–append附加到既有文件的后面,而非覆盖它
-i或–ignore-interrupts忽略中断信号

实例:

#将用户输入的数据同时保存到文件"file1"和"file2"中:
tee file1 file2
#以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:
My Linux  	#提示用户输入数据  
My Linux  	#输出数据,进行输出反馈  
#此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。

【tmpwatch】删除暂存文件

执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。
语法:

tmpwatch [-afqv][--test][超期时间][目录...]

参数说明:

参数说明
-a或–all删除任何类型的文件
-f或–force强制删除文件或目录,其效果类似rm指令的"-f"参数
-q或–quiet不显示指令执行过程
-v或–verbose详细显示指令执行过程
-test仅作测试,并不会真的删除文件或目录

实例:

#删除目录"/tmp"中超过一天未使用的文件:
tmpwatch 24 /tmp/
#以上命令执行后,其执行结果如下所示:
removing directctmp/orbit-tom if not empty #注意:该指令需要root权限,因此在使用tmpwatch命令前应该使用su命令切换用户。

【touch】命令用于修改文件或者目录的时间属性

包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法:

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数说明:

参数说明
a改变档案的读取时间记录
m改变档案的修改时间记录
c假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样
f不使用,是为了与其他 unix 系统的相容性而保留
r使用参考档的时间记录,与 --file 的效果一样
d设定时间与日期,可以使用各种不同的格式
t设定档案的时间记录,格式与 date 指令相同
–no-create不会建立新档案

实例:

#修改文件"testfile"的时间属性为当前系统时间:
touch testfile #使用该指令创建一个空白文件"file":
touch file 

【umask】在建立文件时预设的权限掩码

umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
语法:

umask [-S][权限掩码]

参数说明:

  • -S  以文字的方式来表示权限掩码

实例:

#查看当前权限掩码:
umask

【which】查找文件

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
语法:

which [文件...]

参数说明:

参数说明
-n<文件名长度>指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p<文件名长度>与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w指定输出时栏位的宽度

实例:

#查看指令"bash"的绝对路径:
which bash
#上面的指令执行后,输出信息如下所示:
/bin/bash		#bash可执行程序的绝对路径 

【cp】复制文件或目录

语法:

cp [options] source dest
cp [options] source... directory

参数说明:

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

实例:

#将当前目录 test/ 下的所有文件复制到新目录 newtest下:
cp –r test/ newtest      
#注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。

【whereis】查找文件

该命令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
语法:

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

参数说明:

参数说明
-b只查找二进制文件
-B<目录>只在设置的目录下查找二进制文件
-f不显示文件名前的路径名称
-m只查找说明文件
-M<目录>只在设置的目录下查找说明文件
-s只查找原始代码文件
-S<目录>只在设置的目录下查找原始代码文件
-u查找不包含指定类型的文件

实例:

#查看指令"bash"的位置:
whereis bash 
#上面的指令执行后,输出信息如下所示:
bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz 
#注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

【mcopy】复制 MSDOS 格式文件到 Linux 中,或是由 Linux 中复制 MSDOS 文件到磁片上

mcopy 可复制单一的文件到所指定的文件名称,或是复制数个文件到所指定的目录之中。来源与目的文件可为 MSDOS 或是 Linux 文件。
语法:

mcopy [-bnmpQt/][源文件][目标文件或目录]

参数说明:

参数说明
b批处理模式
/递回的复制。包含目录所含文件与其下所有子目录中的文件
n覆盖其他文件时,不需要进行确认而直接覆盖
m将源文件修改时间设置为目标文件的修改时间
p将源文件的属性设置为目标文件的属性
Q当复制多个文件产生错误时,尽快结束程序
t转换为文本文件
o在覆盖 MSDOS 文件时不会出现警示讯息

实例:
将 A 盘根目录中的 autoexec.bat 复制到目前工作目录之下:

mcopy a:autoexec.bat .

【mshowfat】命令用于显示MS-DOS文件在FAT中的记录

语法:

mshowfat [文件...]

参数说明:

  • [文件…]: 执行操作的文件相对路径或者绝对路径

实例:

#查看文件"autorun.bat"的FAT信息:
mshowfat autorun.bat #注意:执行操作的文件必须是DOS文件系统下的文件。

【rhmask】对文件进行加密和解密操作

语法:

rhmask [加密文件][输出文件] 或 rhmask [-d][加密文件][源文件][输出文件]

参数说明:

  • -d  产生加密过的文件

实例:

#将加密文件"code.txt"进行加密后,另存为输出文件"demo.txt":
rhmask code.txt demo.txt
#以上命令执行后,文件"code.txt"将被加密后,另存为已经加密的文件"demo.txt"。

【scp】Linux之间复制文件和目录

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
语法:

scp 
[-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2#简易写法
scp [可选参数] file_source file_target 

参数说明:

参数说明
-1强制scp命令使用协议ssh1
-2强制scp命令使用协议ssh2
-4强制scp命令只使用IPv4寻址
-6强制scp命令只使用IPv6寻址
-B使用批处理模式(传输过程中不询问传输口令或短语)
-C允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p保留原文件的修改时间,访问时间和访问权限
-q不显示传输进度条
-r递归复制整个目录
-v详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题
-c cipher以cipher将数据传输进行加密,这个选项将直接传递给ssh
-F ssh_config指定一个替代的ssh配置文件,此参数直接传递给ssh
-i identity_file从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
-l limit限定用户所能使用的带宽,以Kbit/s为单位
-o ssh_option如果习惯于使用ssh_config(5)中的参数传递方式
-P port注意是大写的P, port是指定数据传输用到的端口号
-S program指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项

实例:
1、从本地复制到远程

scp local_file remote_username@remote_ip:remote_folder scp local_file remote_username@remote_ip:remote_file 
#前2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名scp local_file remote_ip:remote_folderscp local_file remote_ip:remote_file 
#后2个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

复制目录命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder 
#指定了用户名,命令执行后需要再输入密码scp -r local_folder remote_ip:remote_folder
#没有指定用户名,命令执行后需要输入用户名和密码

上面命令将本地 music 目录复制到远程 others 目录下。

2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,例如:

scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 
scp -r www.runoob.com:/home/root/others/ /home/space/music/

注意:使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

【awk】文本分析工具

awk是一种处理文本文件的语言,是一个强大的文本分析工具。
语法:

awk [选项参数] 'script' var=value file(s)
awk [选项参数] -f scriptfile var=value file(s)

选项参数说明:

  • -F fs or --field-separator fs
    指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
  • -v var=value or --asign var=value
    赋值一个用户定义变量。
  • -f scripfile or --file scriptfile
    从脚本文件中读取awk命令。
  • -mf nnn and -mr nnn
    对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
  • -W compact or --compat, -W traditional or --traditional
    在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
  • -W copyleft or --copyleft, -W copyright or --copyright
    打印简短的版权信息。
  • -W help or --help, -W usage or --usage
    打印全部awk选项和每个选项的简短说明。
  • -W lint or --lint
    打印不能向传统unix平台移植的结构的警告。
  • -W lint-old or --lint-old
    打印关于不能向传统unix平台移植的结构的警告。
  • -W posix
    打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符=不能代替=;fflush无效。
  • -W re-interval or --re-inerval
    允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。
  • -W source program-text or --source program-text
    使用program-text作为源代码,可与-f命令混用。
  • -W version or --version
    打印bug报告信息的版本。

【read】从标准输入读取数值

语法:

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

参数说明:

参数说明
-a后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符
-d后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志
-p后面跟提示信息,即在输入前打印提示信息
-e在输入的时候可以使用命令补全功能
-n后跟一个数字,定义输入文本的长度,很实用
-r屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了
-s安静模式,在输入字符时不再屏幕上显示,例如login时输入密码
-t后面跟秒数,定义输入字符的等待时间
-u后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的

实例:
1、简单读取

#!/bin/bash#这里默认会换行  
echo "输入网站名: "  
#读取从键盘的输入  
read website  
echo "你输入的网站名是 $website"  
exit 0  #退出

测试结果为:

输入网站名: 
www.runoob.com
你输入的网站名是 www.runoob.com

2、-p 参数,允许在 read 命令行中直接指定一个提示

#!/bin/bashread -p "输入网站名:" website
echo "你输入的网站名是 $website" 
exit 0

测试结果为:

输入网站名:www.runoob.com
你输入的网站名是 www.runoob.com

3、-t 参数指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态

#!/bin/bashif read -t 5 -p "输入网站名:" website
thenecho "你输入的网站名是 $website"
elseecho "\n抱歉,你输入超时了。"
fi
exit 0

执行程序不输入,等待 5 秒后:

输入网站名:
抱歉,你输入超时了

【updatedb】 命令用来创建或更新 slocate/locate 命令所必需的数据库文件

updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。
注意: slocate 本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
语法:

updatedb(选项)

参数说明:

参数说明
-o<文件>忽略默认的数据库文件,使用指定的slocate数据库文件
-U<目录>更新指定目录的slocate数据库
-v显示执行的详细过程

实例:
检测一个未存在的文件 runoob.txt:

# locate runoob.txt   # 检索 runoob.txt,没有任何输出,表示没有该文件
# touch ./runoob.txt  # 添加文件 runoob.txt
# locate runoob.txt   # 再次检索 runoob.txt,依然没有该文件
# updatedb            # 更新 locate.db 数据库
# locate runoob.txt   # 再次数据库检索 runoob.txt,找到该文件
/root/runoob/runoob.txt

使用 -U 选项可以指定要更新 slocate 数据库的目录:

updatedb -U /root/runoob/


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部