3.2文件操作命令
3.2.1 ls
命令概述:
列出目标目录中所有的子目录和文件。
命令格式:
ls [参数] [目录名]
常用参数:
参数名 | 作用 |
---|---|
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
参考示例:
列出当前文件夹的文件
chz@ubuntu:~$ ls
desk examples.desktop 公共的 视频 文档 音乐
desk1 hw3 模板 图片 下载 桌面
列出所有文件(包括隐藏文件):
chz@ubuntu:~$ ls -a
. desk .mozilla 公共的
.. desk1 .pam_environment 模板
.bash_history .dmrc .profile 视频
.bash_logout examples.desktop .sudo_as_admin_successful 图片
.bashrc .gconf .viminfo 文档
.bashrc.swp .gnupg .Xauthority 下载
.cache hw3 .xinputrc 音乐
.config .ICEauthority .xsession-errors 桌面
.dbus .local .xsession-errors.old
列出文件的详细信息:
chz@ubuntu:~$ ls -l
总用量 56
drwxrwxr-x 5 chz chz 4096 Dec 31 03:50 desk
drwxrwxr-x 4 chz chz 4096 Dec 30 09:22 desk1
-rw-r--r-- 1 chz chz 8980 Dec 29 22:26 examples.desktop
drwxrwxr-x 3 chz chz 4096 Dec 31 04:58 hw3
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 公共的
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 模板
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 视频
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 图片
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 文档
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 下载
drwxr-xr-x 2 chz chz 4096 Dec 30 01:59 音乐
drwxr-xr-x 2 chz chz 4096 Jan 1 21:06 桌面
列出根目录(/)下的所有目录:
chz@ubuntu:~$ ls /
bin dev initrd.img lib64 mnt root snap tmp vmlinuz
boot etc initrd.img.old lost+found opt run srv usr vmlinuz.old
cdrom home lib media proc sbin sys var
3.2.2 cd
命令概述:
改表文件目录
命令格式:
cd [参数] [目录或文件]
参考示例:
回到根目录
cd /
回到上层目录
cd ..
跳到 /usr/bin/
cd /usr/bin/
回到家目录
cd ~
3.2.3 cp
命令概述:
文件拷贝
命令格式:
cp [参数] [目录或文件] [目标地址]
常用参数:
参数名 | 作用 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 |
-d | 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。 |
-f | 覆盖已经存在的目标文件而不给出提示。 |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 |
-l | 不复制文件,只是生成链接文件。 |
参考示例:
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
cp –r test/ newtest
3.2.4 rm
命令概述:
删除文件
命令格式:
rm [参数] [目录或文件]
常用参数:
参数名 | 作用 |
---|---|
-i | 删除前逐一询问确认。 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 |
-r | 将目录及以下之档案亦逐一删除 |
参考示例:
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
3.2.5 mkdir/rmdir
命令概述:
创建或删除目录
命令格式:
mkdir/rmdir [参数] [目录或文件]
常用参数:
mkdir
-p 确保目录名称存在,不存在的就建一个。
rmdir
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
参考示例:
在工作目录下,建立一个名为 runoob 的子目录 :
mkdir runoob
在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。
若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。)
mkdir -p runoob2/test
将工作目录下,名为AAA的子目录删除
rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
rmdir -p BBB/Test
3.2.6 mv
命令概述:
移动文件
命令格式:
cd [参数] [目录或文件] [目标地址]
常用参数:
参数名 | 作用 |
---|---|
-b | 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 |
-i | 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 |
-f | 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 |
-n | 不要覆盖任何已存在的文件或目录。 |
-u | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 |
参考示例:
将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/runoob/* .
3.2.7 rename
命令概述:
文件重命名
命令格式:
rename 参数
常用参数:
原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。
参考示例:
重命名
rename 源字符串 目标字符串 文件
将main1.c重命名为main.c
rename main1.c main.c main1.c
3.2.8 find
命令概述:
文件查找
命令格式:
find 搜索路径 [选项] 搜索内容
常用参数:
参数名 | 作用 |
---|---|
-mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
-amin n | 在过去 n 分钟内被读取过 |
-anewer file | 比文件 file 更晚被读取过的文件 |
-atime n | 在过去 n 天内被读取过的文件 |
-cmin n | 在过去 n 分钟内被修改过 |
-cnewer file | 比文件 file 更新的文件 |
-ctime n | 在过去 n 天内创建的文件 |
-mtime 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 的文件。 |
d | 目录 |
c | 字型装置文件 |
b | 区块装置文件 |
p | 具名贮列 |
f | 一般文件 |
l | 符号连结 |
s | socket |
-pid n | process id 是 n 的文件 |
参考示例:
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
root@ubuntu:/home/chz# find . -name "*.c"
./hw3/hw1/main.c
将当前目录及其子目录中的所有文件列出:
root@ubuntu:/home/chz# find . -type f
./.cache/thumbnails/fail/gnome-thumbnail-factory/ff169c4ac6079d5e0e12dc32ed07906a.png
./.cache/ibus/bus/registry
./.cache/upstart/unity-settings-daemon.log.1.gz
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime 20
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;