导航:首页 > 程序命令 > 文件管理命令

文件管理命令

发布时间:2023-04-02 20:50:05

A. linux 命令 read (文件管理)——想玩转linux就请一直看下去

Linux read命令用于从标准输入读取数值。

read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。

参数说明:

1、简单读取

测试结果为:

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

测试结果为:

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

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

4、除了输入时间计时,还可以使用 -n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

该例子使用了-n 选项,后接数值 1,指示 read 命令只要接受到一个字符就退出。只要按下一个字符进行回答,read 命令立即接受输入并将其传给变量,无需按回车键。

只接收 2 个输入就退出:

执行程序输入两个字符:

5、 -s 选项能够使 read 命令中输入的数据不显示在命令终端上(实际上,数据是显示的,只是 read 命令将文本颜色设置成与背景相同的颜色)。输入密码常用这个选项。

执行程序输入密码后是不显示的:

6.读取文件

每次调用 read 命令都会读取文件中的 "一行" 文本。当文件没有可读的行时,read 命令将以非零状态退出。

通过什么样的方法将文件中的数据传给 read 呢?使用 cat 命令并通过管道将结果直接传送给包含 read 命令的 while 命令。

测试文件 test.txt 内容如下:

测试代码:

执行结果为:

使用 -e 参数,以下实例输入字符 a 后按下 Tab 键就会输出相关的文件名(该目录存在的):

B. 怎么使用批处理重命名文件,并编号

先在原文件上加弯凳伏p,再批量按编号重命名。

代码如下:

cls

@echo off

color

:: note: change the image format input,default value is 'color'

:: option: color/yuv12/yuv21

set switch=color

::

:: don't change the following code!!!

set img_format=jpg

if %switch% EQU yuv12 (

set img_format=yuv

)

if %switch% EQU yuv21 (

set img_format=yuv

)

setlocal EnableDelayedExpansion

for /F "tokens=*" %%f in ('dir *.jpg /A:-D /B') do (

ren "%%f" "p%%f"

echo "rename %%f --> p%%f"

)

set num=0

for /F "tokens=*" %%f in ('dir *.jpg /A:-D /B') do (

ren "%%f" "!num!.%img_format%"

echo "rename %%f --> !num!.%img_format%"

set /A num = !num! + 1

)

(2)文件管理命令扩展阅读:

1、批处理echo 命令语法:

echo [{on|off}] [message]

Sample:@echo off / echo hello world

在实际应用中会把这条命令和重定向符号(也称为管道符号,一般用粗伍> >> ^)结合来实现输入一些命令到特定的文件中。

2、文件管理命令:

(1)type 显示文本文件的内容。

(2) 将一份或多份文件复制到另一个位置。

(3)del 删除一个或数个文件。

(4)move 移动文件埋携并重命名文件和目录。

(5)ren重命名文件。

(6)replace 替换文件。

(7)attrib 显示或更改文件属性。

(8)find 搜索字符串。

(9)fc 比较两个文件或两个文件集并显示它们之间的不同。

C. 文件管理与重定向

Linux的 文件系统分层结构标准 :FHS Filesystem Hierarchy Standard

参考文档: http://www.pathname.com/fhs/ 其中对每个文件目录有详细说明

/ :根目录,最顶级目录,也是 管理员的家目录

/boot:引导文件、内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此

/bin: 所有用户 使用的基本命令(二进制文件)

/sbin:管理类的基本命令 (仅由root执行)

​ /bin与/sbin:不能关联至独立分区,OS启动即会用到的程序

/etc 配置文件目录

/home/USERNAME:各个用户家目录,存放用户数据

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/usr: universal shared, read-only data (通用只读文件)
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share

/var: variable data files (可变数据)
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据

/dev:设备文件及特殊文件存储位置

/tmp:临时文件存储位置

/srv:系统上运行的服务用到的数据

/media:便携式移动设备挂载点(优盘)
/mnt:临时文件系统挂载点

/opt:第三方应用程序的安装位置

注意:CentOS 7 以后版本目录结构变化 (以下两者相同)

/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和/usr/lib
/lib64 和 /usr/lib64

范例:

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件: /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件: /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件: /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

用 ll 命令查看首字母:

(-) 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道文件pipe
s 套接字文件socket

每个shell和系统进程 都有一个当前的工作目录(current work directory,简称CWD)

显示当前shell CWD的绝对路径: 使用pwd命令 (printing working directory)

范例:

[图片上传失败...(image-8b8689-1596285623724)]

基名 :basename,只取文件名而不要路径
目录名 :dirname,只取路径,不要文件名

范例:

命令 cd : change directory 改变目录(可以使用绝对或相对路径)

选项:-P 切换至物理路径

切换至父目录 : cd ..
切换至当前用户家目录: cd
切换至上一个工作目录 : cd -

相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径

文件相关信息:metadata(属性,元数据), data(数据内容)

每个文件有三个时间戳: (touch创建已存在的文件时,刷新3个时间戳)
access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变(属性)

mtime的改变必然引起ctime的改变

执行ll命令默认显示mtime

范例:

用来匹配符合条件的多个文件,方便批理管理文件

通配符采有特定的符号,表示特定的含义,此特符号称为 元字符

范例:只显示文件夹

别外还有在Linux系统中预定义的字符类:命令man 7 glob可以查看

使用以上通配符,需要双重中括号!!!!!!!!!!!!!!

{a..e} 与 [a - e] 排序内容不相同!!!

范例:

范例: 创建一个以昨天日期命名的.log文件

cp 命令格式:

默认cp=cp -i,提示是否覆盖

范例:

1、将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见

2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求 保留原有权限

mv 命令可以实现文件或目录的 移动和改名

常用选项:
-i 交互式
-f 强制
-b 若目标存在,覆盖前先备份

利用 rename 可以 批量修改文件名

范例: (改名对象打不打引号都可以)

使用rm 命令可以删除文件

常用选项
-i 交互式
-f 强制删除
-r 递归,对目录进行操作时必须使用
--no-preserve-root 用来删除根目录

范例:删除特殊文件

rm虽然删除了文件,但是被删除的文件仍然 可能被恢复
在安全要求较高的场景下,可以使用shred安全删除文件

补充技巧: 防止rm造成严重后果,定义别名进行备份 (修改配置文件永久有效)

配置文件目录:/root/.bashrc

显示目录树 tree

常见选项:
-d: 只显示目录
-L level: 指定显示的层级数目
-P pattern: 只显示由指定wild-card pattern匹配到的路径

常见选项:
-p: 存在于不报错,且可自动创建所需的各目录 (用于一次创建多层目录)
-v: 显示详细信息
-m MODE: 创建目录时直接 指定权限!!!!!!!!!!

rmdir 只能删除空目录 ,如果想删除非空目录,可以使用rm -r 命令递归删除目录树

常见选项:
-p 递归删除父空目录
-v 显示详细信息

练习
(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a,
/testdir/dir1/y/b

(2) 如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b

(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7

inode = (index node)

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的 元数据
这些元数据存放在 inode表中

inode 表 中有很多条记录组成, 第一条记录保存元数据,包括以下信息:

inode number 节点号(身份证号)
文件类型
权限
UID
GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据

一般情况下inode表会占用系统磁盘inode总量的1%

节点号表示 文件的唯一编号 !!!整个系统中 节点号是有限的
当节点号用尽时,即使还有储存空间,也会提示无剩余空间 !!!!!!

目录 是个特殊文件,目录的元数据保存了 目录中文件的列表及节点号的对应关系!!!

系统引用文件是 使用 inode号
实际用户是 通过文件名 来引用一个文件
目录是 目录下的文件名和文件inode号之间的映射

执行cp命令:

执行rm 命令:

执行mv命令:

硬链接本质上就 给一个文件起一个新的名称 ,实质是同一个文件

范例:对文件f1.log创建新的名称f1link.log,两者inode都是132

硬链接特性

目录的链接数至少为2,因为目录中的 . 即为自身
创建子目录会导致链接数增加!

一个符号链接指向另一个文件, 就像windows中的快捷方式

软链接特点:

关于源文件相对路径:只有跨分区创建软链接时才有此问题!

案例一:
提示空间不足 No space left on device,但是 df 查看磁盘空间剩余很多

案例二:
提示储存空间不足,删除无用的大文件后,空间并未释放,什么原因?如何解决?

读入数据:Input
输出数据:Output

打开的文件都有一个 fd : file descriptor (文件描述符)

Linux给程序提供 三种 I/O 设备

I/O重定向:将默认的输入,输出或错误 对应的设备进行修改,指向新的目标

STDOUT和STDERR可以被重定向到指定文件,而非默认的当前终端

支持的操作符号包括:

把STDOUT重定向到文件或其他终端

重定向到文件时,若文件不存在则创建,若文件存在则覆盖内容
再次重定向到同一文件,内容再次覆盖

若 > 符号之前不输入命令,则效果为生成空文件或清空目标文件
是迅速清空文件内容的一种方式

借助/dev/null也可实现同样的功能

磁盘空间不足时,大文件被占用不能停,而且rm删除无法立即腾出空间,应使用 > 或/dev/null >

把STDERR重定向到文件或其他终端

set - C 命令, 禁止将内容覆盖已有文件,但可追加 (此时>|可以强制覆盖)
set + C 命令,允许覆盖

强制覆盖

用 ( )或者{ }合并多个命令的out或err, 注意使用花括号的格式!!!

使用 < 来重定向标准输入:从文件中导入STDIN,代替当前终端的输入设备

使用 单行或多行重定向 来创建新文件,并输入指定内容

同时存在 < > ,优先进行 输入运算

只能对新文件进行!!!!!

只能对新文件进行!!!!!

使用 "<<终止词" 命令 把接下来输入的多行内容进行重定向,
直到终止词位置之前的所有文本都发送给STDIN

终止词 可以是任何一个或多个符号,
比如:!,@,$,EOF(End Of File),mage等, 其中EOF比较常用

易错点: tr命令实现的是 单个字符一一对应的转换关系!!!!

基本格式:

常见用途: 全局大小写转换

-d 删除 所有含有SET1的字符

-c 取字符集的补集,即 取反(一般与-d搭配使用)

-s 把 连续重复的单个字符 以单独一个字符表示,即 去重

管道(使用符号“|”表示) 用来连接多个命令

功能说明:

注意:STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现,格式如下

因此, 当不确定命令的输出结果,或者已知结果中存在error时 ,应该使用上述命令

范例:将 /home 里面的 文件打包 ,不生成文件,而是传送到 stdout,经过管道后,
将 tar -cvf - /home 传送给后面的 tar -xvf - , 最后的这个 - 表示 取前一个命令的 stdout

利用tee命令 可以既重定向到文件,又显示在屏幕

tee的功能:

基本用法

若后面不加命令2

D. linux用VI编辑后保存退出命令是什么啊

先按ESC进入Command模式,然后输入“:wq”,回车就可以保存并退出了。

vi的其他保存/退出命令:

:w 保存;

:w filename 另存为filename;

:wq! 保存并强制退出;

:wq! filename 注:以filename为文件名保存后强制退出;

:q! 强制退出;

:x 保存并退出(仅当文件有变化时保存)

(4)文件管理命令扩展阅读:

vi有三种工作模式:命令模式、文本编辑模式和最后行模式。不同工作模式下的操作方法有所不同。

1、命令行模式

该模式是进入vi编辑器后的默认模式。任何时候,不管用户处于何种模式,按下Esc键即可进入命令模式。

在命令模式下,用户可以输入vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是vi的合法命令,vi 会响铃报警。

2、文本输入模式

在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。

在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按下Esc键即可。

3、末行模式

末行模式也称 ex 转义模式。在命令模式下,用户按:键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。

末行命令执行完后,vi 自动回到命令模式。

E. linux运维常用命令

| 线上查询及帮助命令 |
man:全称为manual,用于查看系统中自带的各种参考手册;
help:用于显示shell内部命令的帮助信息;
| 文件和目录操作命令 |
ls:全拼list,列出目录的内容及其内容属性信息;
cd:全拼change directory,切换当前工作目录至dirName(目录参数);
cp:全称,复制文件或目录;
find:用于在指定目录及目录下查找文件;
mkdir:全拼make directories,创建目录;
mv:全拼move,移动或重命名文件;
pwd:全拼print working directory,显示当前工作目录的绝对路径;
rename:可用字符串替换的方式批量改变文件名;
rm:全拼remove,删除一个或多个文件或目录。必须格外小心地使用该命令;
rmdir:全拼remove empty directories,删除空目录;
touch:修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件;
| 查看文件及内容处理命令 |
cat:全拼concatenate,用于连接多个文件并且打印到屏幕输出或重定向到指定文件中,可查看文件内容;
tac:cat的反向拼写,因此命令的功能为反向显示文件内容。文件内容的最后一行先显示,第一行最后显示;
less:可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件;
head:显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容;
tail:查看文件尾部内容,有一个常用的参数-f常用于查阅正在改变的文件。可以看到最新的文件内容;
| 文件压缩解压缩命令 |
tar:tar命令是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件;
unzip:用于解压缩zip文件;
gzip:用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名;
zip:用来将文件压缩成为常用的zip格式。

F. linuxcp命令详解

cp命令是linux下的一个文件管理命令,通常是用于复制文件或目录,cp命令主要有两个功能,具体介绍如下:
1、能够同时复制多个文件到一个指定的目录中;
2、能够将多个文件复制到一个具体的文件名或一个已经存在的目录下。
参考例子:
复制目录,具体命令为:
[root@linuxcool~]#cp-Rdir1dir2/
cp命令的具体语法格式为cp[参数][文件]。
参数:
-f若目标文件已存在,就会直接覆盖原文件
-i若目标文件已存在,就会询问是否覆盖
-p保留源文件或目录的所有属性
-r递归复制文件和目录
-d当复制符号连接时,将目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l对源文件建立硬连接,而非复制文件
-s对源文件建立符号连接,而非复制文件
-b覆盖已存在的文件目标前将目标文件备份
-v详细显示cp命令执行的操作过程


以上就是小编的分享了,希望能够帮助到大家。
本文章基于ThinkpadE15品牌、centos7系统撰写的。

G. linux文件管理命令有什么

(1)目录管理命令
——ls:列出指定目录下的内容
格式:ls [OPTION]... [FILE]...
-a:显示所有文件包括隐藏文件
-A:显示除.和..之外的所有文件
-l,--long:显示文件的详细属性信息
-h:对文件大小进行单位换算,可能影响精度
-d:查看目录本身而非其内部的文件
-r:逆序显示文件
-R:递归显示文件
示例:ls -lah / --详细显示/目录下的所有文件(包括隐藏文件)
ls -ldh /etc --详细显示/etc目录本身
ls -lhv / --倒序显示/目录下所有文件(包括隐藏文件)
ls -R /etc --递归显示/etc下所有文件
——mkdir:创建目录
格式:mkdir [OPTION]... DIRECTORY...
-p:自动按需创建父目录
-m:创建目录时给定权限
示例:mkdir -p /data/test/A/B --在/data目录下递归创建/test/A/B三个目录
mkdir -m 711 -p /data/MODE/A --在/data目录下递归创建MODE/A两个目录同时指定目录A的权限为711
——rmdir:删除目录
格式:rmdir [OPTION]... DIRECTORY...
-p:删除目录后如果其父目录为空,则一并删除
示例:rmdir -p /data/test/A --删除A目录后,test目录为空,一并删除
——cd:切换目录
示例:cd ..:切换到上级目录
cd ~:切换回自己的家目录
cd -:在上一次目录与当前目录直接来回切换
——pwd:显示当前目录
(2)文件管理命令
——cp:复制
格式:单源复制:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:cp [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归复制目录
示例:cp -if /data/[1-3].txt /data/test --test必须为目录,把三个文件一起复制到test中
cp -r /data /practice --把data目录及目录下的内容一起复制到practice中
——mv:剪切
格式:单源复制:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在则创建,存在则覆盖)
多源复制:mv [OPTION]... SOURCE... DIRECTORY(DEST必须为directory)
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
示例:mv -i /data/[1-3].txt /practice --把/data目录下三个txt文件剪切到/practice下
——rm:删除
格式:rm [OPTION]... FILE...
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r,-R:递归处理,将制定目录下的所有文件包括目录一并删除
示例:rm -rf /practice --递归删除/practice目录
(3)文本内容管理命令
——cat:正向查看文本内容
格式:cat [OPTION]... [FILE]...
-n:给显示的文本行编号
-E:显示行结束符号$
示例:cat -n /etc/fstab --查看/etc/fatab内容并显示行号
——tac:倒叙查看文本内容
格式:tac [OPTION]... [FILE]...
示例:tac /etc/passwd --倒叙查看文本内容
——head:显示文本内容,默认显示头10行
格式:head [OPTION]... [FILE]...
-n #:显示文本头#行内容
示例:head -5 /etc/passwd --显示/etc/passwd文件头5行内容
——tail:显示文本内容,默认显示后10行
格式:tail [OPTION]... [FILE]...
-n #:显示文本后#行内容
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
示例:tail -8 /etc/passwd --显示/etc/passwd文件后8行内容
——more:分屏显示文本内容,每次显示一屏显示完停止
格式:more [options] file [...]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出
——less:分屏显示文本内容,不主动退出
格式:less [options] file [...]
Space键:显示文本下一屏内容
Enter键:只显示文本下一行内容
b键:显示文本上一屏内容
q键:退出

阅读全文

与文件管理命令相关的资料

热点内容
emacslinux配置文件 浏览:379
python3在线教程 浏览:114
不小心删文件夹的文件 浏览:480
java获取手机IP 浏览:816
手机rar解压密码获取 浏览:344
程序员被辞退工资怎么处理 浏览:494
恋活的模型没加密 浏览:159
如何把安卓机的微信转移苹果 浏览:583
爬山算法相关题目 浏览:724
vc编程大全 浏览:118
excel表格单列数据加密 浏览:648
给同事的解压话语 浏览:992
linux关闭网卡命令行 浏览:454
史上最漂亮程序员 浏览:770
java实现excel的导入 浏览:760
光遇账号如何转移安卓 浏览:266
5分之13除以26的算法 浏览:342
兰州安宁区买解压包子 浏览:641
php接收图片代码 浏览:668
hci命令 浏览:664