linux中find与rm实现查找并删除目录或文件linux操作系统

2024-04-24

linux中find与rm实现查找并删除目录或文件linux操作系统(精选3篇)

篇1:linux中find与rm实现查找并删除目录或文件linux操作系统

删除文件直接使用rm就可以删除文件了,删除目录了可以使用rm来删除,下面我们一起来看看Linux中RM快速删除大量文件/文件夹方法.

昨天遇到一个问题,在Linux中有一个文件夹里面含有大量的Cache文件(夹),数量级可能在百万级别,使用rm -rf ./* 删除时间慢到不可接受,Google了一下,查到了一种方法,试用了下确实比单纯使用rm快了一个数量级,

方法见下:

1)首先建立一个空白文件夹。

mkdir /tmp/www.111cn.net

2)之后使用以下语句即可快速的删除文件。

rsync --delete-before -d /tmp/www.111cn.net/ /the/folder/you/want/delete/

原文中说不要忘记文件夹后的“/”

3)一杯咖啡过后,就Ok了。

篇2:linux中find与rm实现查找并删除目录或文件linux操作系统

先看实例

删除复制移动文件命令

Linux代码

rm -rf /file

-r:递归处理参数

-f:强制删除所有文件

Linux代码

cp /test1/file1 /test3/file2

将file1复制到test3下,并改名为file2

Linux代码

cp -a test test1

将test目录下的所有子目录复制到test1下

Linux代码

mv /test1/file1 /test2/test2

将file1移动到test2下,并改名为test2

cp命令

该命令d功能匙将给出d文件或目录拷贝到另一文件或目录中,同MSDOS下dcopy命令一样,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定d源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令d各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项d组合。

- d 拷贝时保留链接。

- f 删除已经存在d目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,匙交互式拷贝。

- p 此时cp除复制源文件d内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出d源文件匙一目录文件,此时cp将递归复制该目录下所有d子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只匙链接文件。

mv 命令

功能说明:移动或更名现有的文件或目录。

语 法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]

补充说明:mv可移动文件或目录,或是更改文件或目录的名称,

参 数:

-b或--backup 若需覆盖文件,则覆盖前先行备份。

-f或--force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。

-i或--interactive 覆盖前先行询问用户。

-S<附加字尾>或

--suffix=<附加字尾> 与-b参数一并使用,可指定备份文件的所要附加的字尾。

-u或--update 在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。

-v或--verbose 执行时显示详细的信息。

-V=<方法>或

--version-control=<方法> 与-b参数一并使用,可指定备份的方法。

--help 显示帮助。

--version 显示版本信息。

名称:rm

使用权限:所有使用者

使用方式:rm [options] name...

说明:删除档案及目录。

参数:?

-i 删除前逐一询问确认。

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

-r 将目录及以下之档案亦逐一删除。

范例:

删除所有C语言程式档;删除前逐一询问确认 :

rm -i *.c

将 Finished 子目录及子目录中所有档案删除 :

rm -r Finished

功能说明:删除文件或目录。

语 法:rm [-dfirv][--help][--version][文件或目录...]

补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数“-r”,否则预设仅会删除文件。

参 数:

-d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。

-f或--force 强制删除文件或目录。

-i或--interactive 删除既有文件或目录之前先询问用户。

-r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-v或--verbose 显示指令执行过程。

--help 在线帮助。

篇3:linux中find与rm实现查找并删除目录或文件linux操作系统

1 CramFS文件系统

CramFS是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩。它并不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需要访问某个位置的数据的时候,马上计算出该数据在CramFS中的位置,将它实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据。

CramFS文件系统的基本组成:初始化程序、Shell程序以及其他Linux常用工具、配置文件、链接库、图形界面程序和用户应用程序,文件系统是紧跟Linux内核放置,由内核加载,主要存放用户应用程序和配置信息。在嵌入式的环境之下,内存和外存资源都需要节约使用。但是它也有很致命的弱点。在正常情况下,同样的代码不仅在外存中占据了空间(以压缩后的形式存在),而且还在内存中占用了更大的空间(以解压缩之后的形式存在),这违背了嵌入式环境下尽量节省资源的要求。

2 CramFS文件系统的特性

CramFS采用实时解压缩方式,但解压缩的时侯有延迟。CramFS的数据都是经过处理、打包的,对其进行写操作有一定困难。所以CramFS不支持写操作,这个特性刚好适合嵌入式应用中使用Flash存储文件系统的场合。在CramFS中,文件最大不能超过16MB。支持组标识(gid),但是mkcramfs只将gid的低8位保存下来,因此只有这8位是有效的。

在支持硬链接方面CramFS并没有完全处理好,硬链接的文件属性中,链接数仍然为1。CramFS的目录中,没有“.”和“..”这两项。因此,CramFS中的目录的链接数通常也仅有一个。CramFS中不会保存文件的时间戳(timestamps)信息。当然,正在使用的文件由于inode保存在内存中,因此其时间可以暂时地变更为最新时间,但是不会保存到CramFS文件系统中去。

CramFS与InitramFS相比较,Initram FS具有随着文件系统中数据的增减自动增减容量、不需要额外的文件系统驱动的优点,而CramFS只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。它们都是只读文件系统,而RomFS文件系统可以构造出一个更小的内核,大约4000字节,并且很节省内存。但是RomFS需要同时支持虚拟盘(RAMDISK)临时文件和数据文件的存储。

3 CramFS文件系统目录

一个完整的CramFS文件系统通常包含如下目录:

Linuxrc、bin、sbin、etc、lib、dev、usr、mnt。

Linuxrc启动脚本文件,由Boot Loader核心命令行确定init=/Linuxrc,加载/etc目录为ramfs,(Cram FS为只读文件系统),拷贝/mnt/etc到/etc,配置文件目录重新加载根文件系统和/etc文件系统,执行init进程。

bin引导启动所需的命令或用户可能用的命令。

sbin系统管理员服务程序,其中最重要的是供内核初始化之后执行的/sbin/init进程,系统启动时由init解释并行/etc/inittab,inittab将指导int去调用一个系统初始化程序/etc/init.d/rc S。

etc特定机器的配置文件以及用户数据存放目录,其中的所有内容是在内核运行后,由Linuxrc从/mnt/etc拷贝得到的。

lib文件系统上的程序所需的动态库。

dev驱动程序存放目录,可以在这里存放自己编写的驱动程序。

usr用于存放用户程序和配置文件的目录,可以根据需要进行设置。目录下的/usr/etc/rc.local执行本地所需要的初始化,如安装核心模块,进行网络,运行应用程序,启动图形界面等。

4移植最小Linux系统

4.1系统环境搭建

操作系统:物理机windows 7

虚拟机软件:VMware Workstation8.0

Linux版本:Ubuntu 11.10-i386-desktop

Linux内核:Linux-2.6.36(Ubuntu 11.10是Linux-3.0.16的内核)

Busybox:Busybox-1.1.3

交叉编译工具:arm-Linux-gcc-3.4.1

Cram FS:cramfs-1.1

4.2构建嵌入式交叉编译环境

解压交叉编译工具文件夹后会生成一个文件名为3.4.1的文件夹。

然后,将解压后的名字为3.4.1的文件复制到根目录下的usr/local/arm文件夹下。

在终端下修改/etc/bash.bashrc文件#vim/etc/bash.bashrc

在最后加上:

export PATH=$PATH:/usr/local/arm/3.4.1/bin

export PATH

然后在终端中输入#source/etc/bash.bashrc

4.3系统移植步骤

(1)进行内核的编译与裁剪,然后生成bzI mage内核镜像。

(2)构建交叉编译环境。

(3)进行配置busybox,然后编译安装busybox。

(4)准备文件系统的目录框架,创建设备文件,以及准备一些配置文件和系统启动时所需的文件。

(5)配置cramfs-1.1,编译cramfs-1.1。

(6)生成Cram FS的文件系统镜像initrd.img。

(7)整合启动文件my OS。

(8)生成光盘镜像文件myiso.iso。

4.4移植过程

4.4.1生成内核镜像

进入内核文件夹#cd usr/src/linux-2.6.36进行内核的配置与裁剪。

#make mrproper

#make menuconfig。

在内核配置中:

[*]---将该功能模块编译进内核

[]---不将该功能模块编译进内核

M---将该功能编译成模块的方式,可以在需要时动态插入到内核中的模块,具体参数及选项含义内核文档里有明确说明。

配置完成后,选择Save an Alternate Configuration File,然后退出。

#make bz Image。

最终生成的内核镜像文件bz Image在/usr/src/linux-2.6.36/arch/X86/boot内。

4.4.2编译安装busybox

进入busybox文件夹#cd 001/busybox-1.1.3

修改Makefile#vim Makefile,以下两项改为:

CROSS_COMPILE=arm-Linux-

ARCH=arm ARCH

进入busybox配置界面#make menuconfig,busybox配置界面如图1所示。

4.4.3构建文件系统目录

#mkdir/mnt/my OS/rootfs#cd/mnt/my OS/rootfs

#mkdir etc usr var conf lib modules scripts

将busybox生成的链接文件复制到rootfs

#cp/001/busybox-1.1.3/_install/*/mnt/my OS/rootfs

将根文件下lib库文件复制到rootfs/lib#cp-R/lib/*/mnt/my Os/rootfs/lib

4.4.4配置Cram FS

进入Cram FS-1.1#cd 001/cramfs-1.1进行编译Cram FS#make

Make之后会产生两个bin文件mkcramfs和cramfsck。

将这两个bin文件复制到/usr/bin中#cp mkcramfs cramfsck/usr/bin。

之后在终端中就可以使用mkcramfs和cramfsck命令了。

4.4.5制作Cram FS文件系统镜像

在终端中输入:

#mkcramfs/mnt/my OS/rootfs/mnt/my OS/initrd.img

这时在/mnt/my OS下会产生一个initrd.img文件系统镜像文件。

4.4.6制作iso镜像

使用mkisofs命令制作iso镜像文件。

#mkisofs-o myiso.iso-b iso Linux/iso Linux.bin-c iso Linux/boot.cat-no-emul-boot-boot-load-size 4-bootinfo-table mnt/my OS

这时,在根目录下就会产生一个myiso.iso系统镜像文件。

5系统测试

首先将制作的好的myiso.iso系统镜像文件复制到物理机内,然后通过虚拟机软件进行启动。

在启动过程中首先是加载启动引导文件——isolinux.bin,然后通过启动引导文件调用启动配置文件——isolinux.cfg中的相关配置信息。

接下来是加载内核镜像,这个过程很快,内核加载完成后进行挂载文件系统(挂载文件系统如图2所示)。

6结语

Linux内核在系统启动期间的最后操作之一就是挂载根文件系统。根文件系统是嵌入式Linux系统不可或缺的重要组成部分,而Busybox是制作嵌入式Linux根文件系统的有效工具。本文首先说明了Linux-2.6.36的内核编译与裁剪、Busybox的编译与安装、使用Busybox-1.1.3和cramfs-1.1制作Cram FS根文件系统的详细过程,然后使用了isolinux方式启动系统内核,挂载文件系统镜像。经过测试,内核启动成功,文件系统挂载成功,并且能够实现linux的基本命令,而未移植入动态链接的命令不能使用如du、ifconfig等。本文为移植和裁剪Linux以及想要构造更为复杂的根文件系统提供了参考,同时为嵌入式Linux中Cram FS根文件系统的移植实现进行了新的尝试。

摘要:首先研究了嵌入式Linux系统以及CramFS文件系统的移植,然后分析了嵌入式Linux系统及CramFS文件系统的特性,其次,详细说明了移植最小Linux系统的制作过程,最后,对制作出来的Linux系统镜像进行测试。最终的测试结果显示,系统移植成功且能够实现Linux系统的基本命令。

关键词:Linux,CramFS,isoLinux

参考文献

[1]刘锬.Linux嵌入式系统开发平台选型探讨[J].单片机与嵌入式系统应用,2004,7(8).

[2]鲁刚,李小平.嵌入式Linux系统软件平台的建立[J].电子科技杂志,2007,8(12).

上一篇:李跃儿教育随笔选下一篇:古诗文诵读教案1