Linux文件查找命令find,xargs详述

合集下载

Linux命令高级技巧使用xargs命令处理大量文件和

Linux命令高级技巧使用xargs命令处理大量文件和

Linux命令高级技巧使用xargs命令处理大量文件和数据Linux命令高级技巧使用xargs命令处理大量文件和数据Linux是一种自由和开放源代码的类Unix操作系统,广泛应用于服务器领域。

作为一名Linux用户,熟练掌握各种命令和技巧是必不可少的。

本文将介绍如何使用xargs命令处理大量文件和数据,帮助你更高效地完成工作。

一、什么是xargs命令xargs命令是一个非常强大并且灵活的Linux命令,用于以规定的格式处理标准输入的数据,并将其作为参数传递给其他命令。

它可以帮助我们处理包含大量文件和数据的情况,提高工作效率。

二、xargs命令的基本用法xargs命令的基本语法如下:```$ command | xargs [options] [command]```其中,command表示要处理输入数据的命令,options部分可以使用一些常用选项来调整xargs的行为,例如:- -t:显示命令的执行过程和结果;- -n num:每次传递给command的参数个数为num;- -I replace-str:将replace-str替换为输入中的参数。

三、使用xargs命令处理大量文件1. 批量复制文件假设我们有一个包含大量文件的目录,需要将这些文件复制到另一个目录中。

使用xargs命令可以轻松完成这个任务。

首先,使用find命令来查找指定目录下的所有文件,并通过管道将结果传递给xargs命令:```$ find /path/to/source -type f | xargs -I {} cp {} /path/to/destination```上述命令中,{}表示输入中的参数,-I选项用于替换参数。

2. 批量删除文件类似地,如果我们想批量删除某个目录下的一些文件,也可以使用xargs命令。

首先,使用find命令查找目标文件,并通过管道传递给xargs命令:```$ find /path/to/directory -name "*.txt" | xargs rm上述命令会删除所有以“.txt”结尾的文件。

Linux命令高级技巧使用find和xargs命令进行批量文件操作

Linux命令高级技巧使用find和xargs命令进行批量文件操作

Linux命令高级技巧使用find和xargs命令进行批量文件操作Linux操作系统具有强大的命令行工具,其中使用find和xargs命令可以实现批量文件操作。

本文将介绍这两个命令的使用方法和技巧,帮助读者灵活高效地处理大量文件。

一、find命令的使用方法find命令用于在指定目录及其子目录下搜索文件,并可以根据不同的条件进行过滤。

1. 查找文件要查找指定目录下的所有文件,可以使用以下命令:```find 目录 -type f```其中,目录为要查找的目录路径。

例如,要查找当前目录下的所有文件,可以使用以下命令:```find . -type f```2. 根据文件名过滤可以使用通配符来过滤特定文件名的文件。

例如,要查找以".txt"为后缀名的文本文件,可以使用以下命令:```find 目录 -type f -name "*.txt"```3. 根据文件大小过滤通过使用-size参数,可以根据文件大小来过滤文件。

以下是一些例子:- 查找大于10MB的文件:```find 目录 -type f -size +10M```- 查找小于1KB的文件:```find 目录 -type f -size -1k```4. 根据文件权限过滤可以使用-perm参数根据文件权限来过滤文件。

以下是一些例子:- 查找具有可执行权限的文件:```find 目录 -type f -perm /u+x```- 查找不具有写权限的文件:```find 目录 -type f ! -perm /u+w```5. 其他过滤条件find命令还支持其他各种过滤条件,如根据文件修改时间、访问时间等。

读者可以参考相关文档进一步了解。

二、xargs命令的使用方法xargs是一个很有用的命令,可以将标准输入的内容作为命令的参数,并且可以处理长参数列表。

1. 单行命令处理要将find命令的结果作为参数传递给其他命令,可以使用xargs命令。

如何使用find和xargs命令批量操作文件

如何使用find和xargs命令批量操作文件

如何使用find和xargs命令批量操作文件在日常的文件管理和操作中,我们经常遇到需要批量处理多个文件的情况。

在Linux系统中,find和xargs命令是两个非常常用的工具,它们可以结合使用来实现对文件进行批量操作。

本文将介绍如何使用find和xargs命令来批量操作文件,包括查找文件、删除文件、修改文件权限等。

1. 查找文件查找文件是使用find和xargs命令的常见操作之一。

通过find命令可以按照指定的条件搜索文件,并将搜索结果作为xargs命令的输入。

下面是一个查找文件的示例:```find /path/to/directory -name "*.txt" | xargs ls -l```上述命令会在指定的目录(/path/to/directory)中查找所有扩展名为.txt的文件,并通过xargs命令将搜索结果作为ls -l命令的参数,从而显示搜索到的文件的详细信息。

2. 删除文件使用find和xargs命令可以方便地批量删除多个文件。

下面是一个删除文件的示例:```find /path/to/directory -name "*.tmp" | xargs rm```上述命令会在指定的目录中查找所有扩展名为.tmp的文件,并通过xargs命令将搜索结果作为rm命令的参数,从而删除这些文件。

注意:在执行删除操作时,请谨慎操作,避免误删重要文件。

3. 修改文件权限使用find和xargs命令可以同时修改多个文件的权限。

下面是一个修改文件权限的示例:```find /path/to/directory -name "*.sh" | xargs chmod +x```上述命令会在指定的目录中查找所有扩展名为.sh的文件,并通过xargs命令将搜索结果作为chmod +x命令的参数,从而将这些文件设为可执行。

注意:在修改文件权限时,请明确目的,并避免给予不必要的权限。

在Linux终端中查找文件和文件夹

在Linux终端中查找文件和文件夹

在Linux终端中查找文件和文件夹在Linux操作系统中,终端是一个十分强大而且常用的工具。

通过终端,我们可以进行各种文件和文件夹的操作,包括查找。

本文将介绍在Linux终端中如何快速准确地查找文件和文件夹。

1. 使用find命令进行基本查找find命令是Linux终端中最常用的查找命令之一,它可以根据用户指定的条件来查找文件和文件夹。

下面是find命令的基本语法:find [路径] [表达式]其中,路径表示要查找的目录路径,表达式是用于指定查找条件的参数。

以下是一些常用的表达式:- -name:按照文件或文件夹名称进行查找。

例如,要查找名为"test.txt"的文件,可以使用以下命令:find /path/to/directory -name test.txt- -type:按照文件类型进行查找。

例如,要查找所有目录,可以使用以下命令:find /path/to/directory -type d- -mtime:按照文件的修改时间进行查找。

例如,要查找在过去7天内被修改过的所有文件,可以使用以下命令:find /path/to/directory -mtime -7以上只是find命令的一小部分功能,更多用法可以通过man find命令进行查看。

2. 使用locate命令进行快速查找locate命令是另一个常用的查找命令,它通过搜索系统的数据库来进行查找,因此速度比find命令快。

但是需要注意的是,locate命令需要在使用之前先更新数据库。

以下是locate命令的基本用法:- 更新数据库:sudo updatedb- 查找文件或文件夹:locate [关键词]例如,要查找名为"test.txt"的文件,可以使用以下命令:locate test.txt3. 使用grep命令进行内容查找除了按照名称进行查找之外,有时候我们也需要按照文件内容进行查找。

这时可以使用grep命令,它可以在文件中搜索指定的关键词,并返回包含该关键词的行。

Linux命令高级技巧使用xargs进行批量命令操作

Linux命令高级技巧使用xargs进行批量命令操作

Linux命令高级技巧使用xargs进行批量命令操作在Linux系统中,命令行是进行各种操作的重要工具。

而xargs命令则是在命令行中进行批量命令操作的有力工具。

本文将介绍Linux命令中xargs的高级技巧,教你如何利用xargs命令来提高工作效率。

一、什么是xargs命令xargs是Linux系统下的一个命令行工具,用于将标准输入的数据转换成命令行参数。

它可以将输入的数据分割成合适的大小,并传递给后续命令进行处理。

xargs的基本语法如下:xargs [options] [command]二、使用xargs进行批量命令操作1. 基本用法使用xargs命令进行批量命令操作的基本步骤如下:a. 首先,通过管道将数据传递给xargs命令,作为xargs的输入数据。

b. 然后,使用xargs命令将输入数据转换成命令行参数。

c. 最后,指定需要执行的命令,xargs将会将参数传递给该命令并执行。

举个例子,假设我们有一个文件列表,我们想要将这些文件都复制到指定目录中,可以使用以下命令:$ ls | xargs -I {} cp {} /path/to/destination该命令通过ls命令获取文件列表,并通过管道传递给xargs命令。

xargs命令将每个文件作为参数传递给cp命令,实现文件批量复制操作。

2. 使用xargs与find命令进行文件查找操作xargs命令通常与find命令一起使用,用于批量操作查找到的文件。

例如,我们希望在当前目录及其子目录下查找所有扩展名为.txt的文件,并将它们移动到新目录中。

可以使用以下命令:$ find . -name "*.txt" | xargs -I {} mv {} /path/to/newdirectory该命令通过find命令查找所有扩展名为.txt的文件,并通过管道传递给xargs命令。

xargs命令将每个文件作为参数传递给mv命令,实现文件批量移动操作。

Linux命令高级技巧使用xargs和find命令进行批量文件操作和筛选

Linux命令高级技巧使用xargs和find命令进行批量文件操作和筛选

Linux命令高级技巧使用xargs和find命令进行批量文件操作和筛选在Linux系统中,xargs和find是两个非常强大且常用的命令,它们能够帮助我们进行批量文件操作和筛选。

本文将介绍如何使用xargs和find命令来实现高级技巧。

一、xargs命令的基本用法xargs命令用于将标准输入的数据,通过给定的参数,组装成命令行的参数,执行这些命令。

其基本语法如下:```bashcommand | xargs [options] [command]```其中,command表示要执行的命令,options表示xargs的选项,[command]表示作为command的选项。

1. 使用xargs执行命令例如,假设有一个文本文件`files.txt`,其中每一行都包含一个文件名,我们想要对这些文件执行某个命令,可以使用xargs命令:```bashcat files.txt | xargs rm```上述命令会读取`files.txt`中的内容,并将每一行视为rm命令的参数,从而删除这些文件。

2. 使用xargs设定参数个数有时候,我们想要将多个参数组合在一起作为command的参数,可以使用`-n`选项来设定参数的个数。

例如,我们想要每次传递3个参数给command:```bashcat files.txt | xargs -n 3 command```上述命令会每次从`files.txt`中读取3行,将这3行视为command的参数。

3. 使用xargs处理特殊字符在使用xargs时,如果待处理的文件名或参数中包含特殊字符(如空格),需要处理这些特殊字符。

可以使用`-0`选项来处理以空格分割的参数。

```bashfind . -name "*.txt" -print0 | xargs -0 command```上述命令会找到以`.txt`结尾的所有文件,并将它们作为参数传递给command。

Linux命令高级技巧使用find和xargs命令进行文件搜索和批量操作

Linux命令高级技巧使用find和xargs命令进行文件搜索和批量操作

Linux命令高级技巧使用find和xargs命令进行文件搜索和批量操作Linux命令高级技巧:使用find和xargs命令进行文件搜索和批量操作Linux操作系统以其强大和灵活的命令行工具而闻名,其中find和xargs命令是经常被使用的工具之一。

find命令用于在指定目录下查找文件,而xargs命令则用于将读取的数据作为参数传递给其他命令。

本文将介绍使用find和xargs命令进行文件搜索和批量操作的高级技巧。

一、使用find命令进行文件搜索find命令允许用户在指定目录下按照一定的条件搜索文件。

其基本语法如下:find [path] [options] [operation]其中,[path]表示要搜索的目录路径,[options]表示可选的搜索选项,[operation]表示要执行的操作。

1. 搜索指定类型的文件有时候我们只需要搜索特定类型的文件,例如搜索所有的文本文件。

可以使用-type选项指定文件类型。

例如,要搜索所有的文本文件,可以使用以下命令:find /path/to/directory -type f -name "*.txt"上述命令将在/path/to/directory目录下搜索所有的文本文件,并以".txt"为后缀。

2. 按照文件大小进行搜索通过使用-size选项,我们可以按照文件大小进行搜索。

例如,要搜索大于1MB的文件,可以使用以下命令:find /path/to/directory -type f -size +1M上述命令将在/path/to/directory目录下搜索大于1MB的文件。

3. 搜索特定时间范围内的文件我们还可以使用-mtime选项按照文件的修改时间进行搜索。

例如,要搜索最近7天内修改过的文件,可以使用以下命令:find /path/to/directory -type f -mtime -7上述命令将在/path/to/directory目录下搜索最近7天内修改过的文件。

Linux命令高级技巧使用findgrepdiffxargs和rsync命令进行文件和比较搜索和同步

Linux命令高级技巧使用findgrepdiffxargs和rsync命令进行文件和比较搜索和同步

Linux命令高级技巧使用findgrepdiffxargs和rsync命令进行文件和比较搜索和同步Linux命令高级技巧:使用find、grep、diff、xargs和rsync命令进行文件比较、搜索和同步Linux操作系统作为一种开源的操作系统,以其高度可定制、灵活性强和安全性好等优势广受欢迎。

作为Linux用户,熟练掌握一些高级命令技巧,可以提高工作效率和解决问题的能力。

本文将介绍一些常用的Linux命令高级技巧,包括find、grep、diff、xargs和rsync命令的使用,帮助读者更好地进行文件比较、搜索和同步操作。

一、find命令find命令是Linux系统中一个非常有用的查找工具,可以根据指定的条件,在文件系统中搜索符合条件的文件。

其基本的语法格式如下:find [路径] [选项] [操作]其中,路径表示搜索的起始路径,选项用于指定搜索条件,操作表示对搜索到的文件进行的一些操作。

举个例子,如果我们要在当前目录及其子目录中查找文件名以".txt"结尾的文件,可以使用如下命令:find . -name "*.txt"该命令表示在当前目录及其子目录中查找文件名以".txt"结尾的文件,并输出相应的结果。

二、grep命令grep命令是Linux系统中一个强大的文本搜索工具,可以根据指定的模式在文件中查找符合条件的内容。

其基本的语法格式如下:grep [选项] [模式] [文件名]其中,选项用于指定搜索的方式和一些其他的参数,模式表示要搜索的内容的规则或关键词,文件名表示需要进行搜索的文件。

例如,我们要在文件file.txt中查找包含字符串"hello"的行,可以使用如下命令:grep "hello" file.txt该命令表示在文件file.txt中查找包含字符串"hello"的行,并输出相应的结果。

Linux命令高级技巧使用find与xargs进行批量文件操作

Linux命令高级技巧使用find与xargs进行批量文件操作

Linux命令高级技巧使用find与xargs进行批量文件操作在Linux系统中,find和xargs是两个非常实用的命令,用于批量处理文件和目录。

本文将介绍如何使用这两个命令来进行高级的文件操作。

一、使用find命令查找文件find命令用于在指定目录下查找文件,并可以按照不同的条件进行过滤。

下面是使用find命令的一些常用格式:1. 查找指定目录下的所有文件:```shellfind /path/to/directory```2. 查找指定目录下的所有以.txt结尾的文件:```shellfind /path/to/directory -name "*.txt"```3. 查找指定目录下的所有大于10M的文件:```shellfind /path/to/directory -size +10M```4. 查找指定目录下的所有修改时间在3天以前的文件:```shellfind /path/to/directory -mtime +3```二、使用xargs命令批量处理文件xargs命令用于从标准输入中读取数据,并将其作为参数传递给其他命令。

通过结合find和xargs命令,可以实现对查找到的文件进行批量处理。

下面是使用xargs命令的一些示例:1. 删除所有以.txt结尾的文件:```shellfind /path/to/directory -name "*.txt" | xargs rm```2. 复制所有以.jpg结尾的文件到指定目录:```shellfind /path/to/directory -name "*.jpg" | xargs -I {} cp {}/path/to/destination```3. 修改所有以.sh结尾的文件的权限为755:```shellfind /path/to/directory -name "*.sh" | xargs chmod 755```三、使用find和xargs命令的进阶技巧除了基本的文件操作,find和xargs命令还可以与其他命令结合,实现更复杂的批量处理。

linux 查找文件的几个命令

linux 查找文件的几个命令

linux 查找文件的几个命令在Linux操作系统中,有许多不同的命令可以帮助用户找到他们正在寻找的文件。

以下是一些常用的Linux查找文件命令:1. find命令:find命令是Linux中最常用的查找文件命令之一。

它可以使用不同的选项进行灵活的文件查找。

例如,可以使用“-name”选项来按文件名查找文件,使用“-type”选项来按文件类型查找文件,还可以使用“-size”选项来按文件大小查找文件等等。

例子:```find /etc -name passwd```这个命令会在/etc目录下查找名为passwd的文件。

2. locate命令:locate命令是另一个常用的文件查找命令。

它使用数据库而不是实时查找来查找文件,因此比find命令更快。

但是,locate命令的数据库通常每天更新一次,所以可能会错过最新创建的文件。

例子:```locate passwd```这个命令会查找系统中所有包含“passwd”的文件。

3. whereis命令:whereis命令用于查找二进制文件、源代码文件和帮助文档文件的位置。

这个命令比较简单,只需要指定文件名即可。

例子:```whereis passwd```这个命令会查找系统中passwd的二进制文件、源代码文件和帮助文档文件的位置。

4. which命令:which命令用于查找可执行文件的位置。

它会在系统的PATH环境变量指定的路径中查找可执行文件。

例子:```which ls```这个命令会找到ls命令的可执行文件路径。

5. grep命令:grep命令是一个强大的文本搜索工具,可以用来在文件中查找特定的字符串。

它的功能不仅限于查找文件名,还可以在文件的内容中查找特定的字符串。

例子:```grep -r "hello" /home/user这个命令会在/home/user目录及其子目录中查找包含“hello”的文件。

6. du命令:du命令用于查看文件或目录的磁盘使用情况。

Linux命令高级技巧使用xargs和find进行批量文件处理和命令执行

Linux命令高级技巧使用xargs和find进行批量文件处理和命令执行

Linux命令高级技巧使用xargs和find进行批量文件处理和命令执行Linux是一个广受欢迎的开源操作系统,它提供了许多强大的命令行工具,让用户能够轻松完成各种任务。

其中,xargs和find是两个非常实用的命令,可以帮助我们进行批量文件处理和命令执行。

本文将介绍如何使用xargs和find命令来实现这些任务。

一、xargs命令的基本使用xargs命令用来将标准输入数据转换成命令行参数,可以将标准输入分割成多个参数,再传递给其他命令。

它的基本语法如下:```command | xargs [options] [command]```其中,command是要执行的命令,options是一些选项,可以根据需求进行设置。

xargs命令的主要作用是解决命令行参数过多的问题,以及帮助我们处理包含空格、特殊字符或换行符的文件名。

下面是一个示例,演示如何使用xargs来实现批量创建文件:```$ echo "file1 file2 file3" | xargs touch```上述命令会创建名为file1、file2和file3的三个文件。

二、使用xargs和find命令进行批量文件处理结合xargs和find命令,我们可以轻松地对多个文件进行批量处理。

例如,我们想要批量删除所有以.txt结尾的文件,可以使用以下命令:```$ find . -name "*.txt" | xargs rm```上述命令会查找当前目录及其子目录中所有以.txt结尾的文件,并将它们作为参数传递给rm命令,从而实现批量删除。

三、使用xargs和find命令执行批量命令除了文件处理,xargs和find命令还可以帮助我们批量执行其他命令。

下面是一个示例,演示如何批量修改所有以.js结尾的文件的访问权限:```$ find . -name "*.js" | xargs chmod 644```上述命令会查找当前目录及其子目录中所有以.js结尾的文件,并将它们作为参数传递给chmod命令,从而批量修改文件的访问权限。

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理Linux命令高级技巧:利用find与xargs命令进行批量文件权限的修改与管理在Linux系统中,文件权限的管理是系统管理员经常需要处理的任务之一。

当我们需要对大量的文件进行权限的修改时,手动一个一个文件修改权限显然是非常低效且耗时的。

本文将介绍一种高级技巧,使用Linux命令中的find与xargs命令来进行批量文件权限的修改与管理,以提高工作效率。

1. 查找文件首先,我们需要使用find命令定位到我们想要修改权限的文件所在的目录。

find命令可以根据一系列的条件来查找文件,在这里我们将使用权限作为条件进行查找。

例如,我们想要查找当前目录下所有的文本文件(扩展名为txt),并且权限为只读的文件,命令如下:```find . -type f -name "*.txt" -perm /a=r```上述命令中,“.”表示当前目录,“-type f”表示只查找文件而不包括目录,“-name "*.txt"”表示查找扩展名为txt的文件,“-perm /a=r”表示查找权限为只读的文件。

2. 修改文件权限找到满足条件的文件后,我们可以使用xargs命令将这些文件的路径传递给下一个命令,进而修改文件的权限。

例如,我们想要将上一步找到的只读文件的权限改为可读可写,命令如下:```find . -type f -name "*.txt" -perm /a=r | xargs chmod 644```上述命令中,“|”是管道操作符,将find命令的结果传递给xargs命令,“chmod 644”表示将文件的权限改为可读可写。

3. 批量修改权限有时候,我们可能需要对整个目录中的所有文件都进行权限的修改。

这时候,我们可以使用通配符来简化命令。

例如,我们想要将当前目录下所有的Shell脚本文件(扩展名为sh)的权限改为可执行,命令如下:```find . -type f -name "*.sh" | xargs chmod +x```上述命令中,“chmod +x”表示将文件的权限改为可执行。

Linux命令高级技巧使用findgrepsedxargs和awk命令进行高级文件搜索和批量处理

Linux命令高级技巧使用findgrepsedxargs和awk命令进行高级文件搜索和批量处理

Linux命令高级技巧使用findgrepsedxargs 和awk命令进行高级文件搜索和批量处理Linux命令高级技巧:使用find、grep、sed、xargs和awk命令进行高级文件搜索和批量处理Linux是一种常用的操作系统,广泛应用于服务器和嵌入式设备。

作为开源操作系统,Linux提供了强大的命令行工具,这些工具可以通过各种命令和参数来完成各种任务。

本文将介绍Linux中几个常用的命令:find、grep、sed、xargs和awk,并讲解如何使用它们来进行高级文件搜索和批量处理。

一、find命令find命令用于在指定目录中搜索文件和目录。

它可以根据文件名、文件类型、文件大小、文件时间等多个条件进行搜索。

以下是find命令的基本语法:find [路径] [条件]其中,路径表示搜索的起始目录,条件表示搜索的条件。

下面是一些常见的find命令使用示例:1. 在当前目录下搜索以.txt结尾的文件:$ find . -name "*.txt"该命令会从当前目录开始搜索,找到以.txt结尾的文件并打印出它们的路径。

2. 在指定目录及其子目录下搜索大于100MB的文件:$ find /path/to/dir -size +100M该命令会在指定目录及其子目录中搜索大于100MB的文件并打印出它们的路径。

3. 在系统根目录下搜索所有的空文件:$ find / -type f -empty该命令会在系统根目录下搜索所有的空文件并打印出它们的路径。

二、grep命令grep命令用于在文件中搜索指定的模式。

它可以根据正则表达式匹配模式,并打印出包含该模式的行。

以下是grep命令的基本语法:grep [选项] 模式 [文件]其中,选项表示grep命令的参数,模式表示要搜索的模式,文件表示要搜索的文件。

下面是一些常见的grep命令使用示例:1. 在文件中搜索包含指定关键字的行:$ grep "keyword" file.txt该命令会在file.txt文件中搜索包含关键字"keyword"的行并打印出它们。

Linux命令高级技巧使用xargs和find实现高级批量文件处理和命令执行

Linux命令高级技巧使用xargs和find实现高级批量文件处理和命令执行

Linux命令高级技巧使用xargs和find实现高级批量文件处理和命令执行在Linux系统中,xargs和find命令是非常强大和常用的命令,它们能够帮助我们更高效地进行批量文件处理和命令执行。

本文将介绍如何运用xargs和find命令来实现高级的批量操作。

1. xargs命令简介xargs命令是用来将前面命令的输出作为后面命令的参数传递的。

它可以将标准输入中的内容转换成后面命令的参数,实现对多个文件的操作。

2. find命令简介find命令是用来搜索文件和目录的命令,它可以按照文件名、文件类型、文件大小等条件搜索文件、执行相应的操作。

3. 使用xargs和find命令批量处理文件假设我们需要在一个目录下对所有的txt文件进行批量修改后缀名,将其改为doc,可以使用以下命令:find . -name "*.txt" | xargs -i mv {} {}.doc在上述命令中,首先使用find命令找到当前目录及其子目录下所有的txt文件,然后使用xargs命令将这些文件名作为参数传递给后面的mv命令,实现批量修改文件后缀名的操作。

4. 使用xargs和find命令批量执行命令除了文件操作,xargs和find命令还可以帮助我们批量执行命令。

假设我们需要在一个目录下对所有的txt文件进行关键词搜索,可以使用以下命令:find . -name "*.txt" -type f | xargs -I{} grep "keyword" {}上述命令中,通过find命令找到所有的txt文件,并使用xargs命令将这些文件名作为参数传递给grep命令,实现对文件内容的搜索。

5. 使用xargs和find命令实现更多高级操作除了上述示例中的批量操作和命令执行,xargs和find命令还有更多实用的功能。

例如,可以使用xargs命令配合awk命令来处理大量数据,使用find命令进行文件权限的批量修改等。

linux系统find命令详解+xargs命令、exec命令

linux系统find命令详解+xargs命令、exec命令

linux系统find命令详解+xargs命令、exec命令find作⽤:查找⽂件:指定⽂件名例⼦1. 找到以du结尾的⽂件╭─root@localhost.localdomain ~╰─➤ find / -name "*du" | head -3/var/lib/AccountsService/users/du/var/db/sudo/du/var/spool/mail/du例⼦2:找到包含du的⽂件╭─root@localhost.localdomain ~╰─➤ find / -name "*du*" | head -3./.oh-my-zsh/themes/duellj.zsh-theme./.zcompdump-localhost-5.0.2./apr-1.5.2/file_io/os2/filedup.c2. perm:指定⽂件权限例⼦1:找到所有644权限的⽂件╭─root@localhost.localdomain ~╰─➤ find / -perm 644 | head -3/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac/boot/config-3.10.0-514.el7.x86_64╭─root@localhost.localdomain ~╰─➤ ll /boot/grub/splash.xpm.gz-rw-r--r--. 1 root root 1.4K 11⽉ 16 2011 /boot/grub/splash.xpm.gz例⼦2:模糊匹配644权限╭─root@localhost.localdomain ~╰─➤ find / -perm -644 | head -3/boot/grub/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac3. exec: 执⾏命令例⼦1:删除⽆属主的⽂件╭─root@localhost.localdomain ~╰─➤ find / -nouser -exec rm -rf {} \;3:xargs╭─root@localhost.localdomain /home╰─➤ lsdu╭─root@localhost.localdomain /home╰─➤ touch {1..20}cjk╭─root@localhost.localdomain /home╰─➤ ls10cjk 12cjk 14cjk 16cjk 18cjk 1cjk 2cjk 4cjk 6cjk 8cjk du11cjk 13cjk 15cjk 17cjk 19cjk 20cjk 3cjk 5cjk 7cjk 9cjk╭─root@localhost.localdomain /home╰─➤ find /home -name "*cjk" | xargs rm -rf╭─root@localhost.localdomain /home╰─➤ lsdu4.find可以使⽤-a和-o或!-a 是⽽且的意思-o 是或者的意思例⼦1:找到所有权限是644的普通⽂件╭─root@localhost.localdomain /home╰─➤ find / -type f -a -perm 644 | head -3/boot/grub/splash.xpm.gz/boot/.vmlinuz-3.10.0-514.el7.x86_64.hmac/boot/config-3.10.0-514.el7.x86_64例⼦⼆:找到以du开头或以du结尾的普通⽂件╭─root@localhost.localdomain /home╰─➤ find / -name "du*" -o -name "*du" -a -type f必要时可以⽤(),但是需要⽤"\"转义删除⽇志⽂件(9号机桌⾯有命令)find /alidata/www/logs/java/ebs/sys -mtime +7 -type f \( -name "task.log.*" -o -name "dubbo.log.*" -o -name "task-removeSnapshot.log.*" -o -name "service.log.*" -o -name "grandcanal_heartbeat,log,*" -o -name "grandcanal_thread.log.*" \) | xargs 5. user:指定属主例⼦1:找到etc⽬录下属主是root的⽂件╭─root@localhost.localdomain ~╰─➤ find /etc -user root | head -3/etc//etc/fstab/etc/crypttab6.group:指定属组例⼦1:╭─root@localhost.localdomain ~╰─➤ find /etc -group root | head -3/etc/etc/fstab/etc/crypttab7. nouser:指定⽆属主例⼦1:╭─root@localhost.localdomain ~╰─➤ find -nouser | head -5./httpd-2.4.20./httpd-2.4.20/.deps./httpd-2.4.20/.gdbinit./httpd-2.4.20/ABOUT_APACHE./httpd-2.4.20/acinclude.m4╭─root@localhost.localdomain ~╰─➤ ll ./httpd-2.4.20/.deps-rw-r--r--. 1 501 games 0 5⽉ 23 20:33 ./httpd-2.4.20/.deps8. nogroup:指定⽆属主╭─root@localhost.localdomain ~╰─➤ find -nogroup9.type:指定⽂件类型-type #⽂件类型主要的⽂件类型:f #普通⽂件d #⽬录b #块设备s #套接字c #字符设备l #链接p #管道例⼦1:找到所有的链接⽂件╭─root@localhost.localdomain ~╰─➤ find / -type l | head -3/dev/cdrom/dev/snd/by-path/pci-0000:02:02.0/dev/initctl╭─root@localhost.localdomain ~╰─➤ find -type l | head -3./.oh-my-zsh/plugins/fedora/fedora.plugin.zsh./.oh-my-zsh/plugins/go/go.plugin.zsh./.oh-my-zsh/plugins/gradle/_gradle╭─root@localhost.localdomain ~╰─➤ ll ./.oh-my-zsh/plugins/fedora/fedora.plugin.zshlrwxrwxrwx. 1 root root 21 4⽉ 19 11:20 ./.oh-my-zsh/plugins/fedora/fedora.plugin.zsh -> ../dnf/dnf.plugin.zsh 例⼦2:找到所有普通⽂件╭─root@localhost.localdomain ~╰─➤ find -type f | head -3./.bash_logout./.bash_profile./.bashrc10. size:指定⽂件⼤⼩例⼦1:找到⼤于100M的⽂件╭─root@localhost.localdomain ~╰─➤ find / -size +100M/proc/kcore/run/media/root/CentOS 7 x86_64/LiveOS/squashfs.img/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc/sys/devices/pci0000:00/0000:00:0f.0/resource1/usr/lib/locale/locale-archive╭─root@localhost.localdomain ~╰─➤ ls -lh /usr/lib/locale/locale-archive-rw-r--r--. 1 root root 102M 4⽉ 18 21:35 /usr/lib/locale/locale-archive11. mtime: (modify time)指⽂件修改时间(天)例⼦1:找到⽂件修改时间⼀天以上的[root@ken ~]# find / -mtime +1 | head -3/boot/boot/efi/boot/efi/EFI[root@ken ~]# stat /bootFile: ‘/boot’Size: 4096 Blocks: 8 IO Block: 4096 directoryDevice: 801h/2049d Inode: 64 Links: 5Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-05-24 19:31:37.453000000 +0800Modify: 2019-02-26 22:25:57.574000000 +0800Change: 2019-03-14 18:49:48.066000000 +0800Birth: –12. atime:(access time)指定⽂件访问时间(天)例⼦:找到访问时间1天以上的[root@ken ~]# find / -atime +1 | head -3/boot/grub2/device.map/boot/grub2/i386-pc/gcry_rmd160.mod/boot/grub2/i386-pc/acpi.mod^C[root@ken ~]# stat /boot/grub2/device.mapFile: ‘/boot/grub2/device.map’Size: 64 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 1572929 Links: 1Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-02-26 22:25:05.730000000 +0800Modify: 2019-02-26 22:25:05.582000000 +0800Change: 2019-02-26 22:25:05.582000000 +0800Birth: –13.ctime:(create time)指定创建时间(天)例⼦1:指定⽂件创建时间⼀天以上[root@ken ~]# find / -ctime +1 | head -3/boot/boot/efi/boot/efi/EFI^C^[root@ken ~]# stat /bootFile: ‘/boot’Size: 4096 Blocks: 8 IO Block: 4096 directoryDevice: 801h/2049d Inode: 64 Links: 5Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2019-05-24 19:31:37.453000000 +0800Modify: 2019-02-26 22:25:57.574000000 +0800Change: 2019-03-14 18:49:48.066000000 +0800Birth: –。

Linux命令-find及xargs的使用

Linux命令-find及xargs的使用

由于f i n d具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统( N F S ),f i n d命令在该文件系统中同样有效,只要你具有相应的权限。

F i n d命令的一般形式为:find pathname -options [-print -exec -ok]该命令的参数:pathname: find命令所查找的目录路径。

例如用.来表示当前目录,用/来表示系统根目录。

-print:find命令将匹配的文件输出到标准输出。

-exec:find命令对匹配的文件执行该参数所给出的s h e l l命令。

相应命令的形式为' command' {} \;,注意{ }和\;之间的空格。

-ok: 和- e x e c的作用相同,只不过以一种更为安全的模式来执行该参数所给出的s h e l l命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

find命令选项:-name:按照文件名查找文件。

-perm:按照文件权限来查找文件。

-prune:使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune 将被f i n d命令忽略。

-user:按照文件属主来查找文件。

-group:按照文件所属的组来查找文件。

-mtime -n +n:按照文件的更改时间来查找文件,- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。

F i n d命令还有- a t i m e和- c t i m e选项,但它们都和- m t i m e选项。

-nogroup:查找无有效所属组的文件,即该文件所属的组在/ e t c / g r o u p s中不存在。

-nouser:查找无有效属主的文件,即该文件的属主在/ e t c / p a s s w d中不存在。

-newer file1 ! file2:查找更改时间比文件f i l e 1新但比文件f i l e 2旧的文件。

Linux常用命令--文件(夹)查找之find命令

Linux常用命令--文件(夹)查找之find命令

Linux常⽤命令--⽂件(夹)查找之find命令Linux系统⽤得越久,就会发现这真的是⼀个很优秀的系统,各种⽅便各种实⽤各种⾼效率。

晚饭前写⼀下find命令的笔记。

其实这篇笔记,也是看到⼀篇外⽂博客,写得不错,⾃⼰拿来练⼀练,然后才顺便写篇笔记。

find命令是我们在Linux下最常⽤的⽂件(夹)查找命令之⼀,它的⽤途很⼴泛,可以通过⼀个⽂件(夹)的所属⽤户、⽤户组,包含名称,时间(更新或更旧),⽂件类型(.txt,.rar后缀),⽂件⼤⼩,⽂件权限等等条件来对⽂件(夹)进⾏查找,这个命令对于系统管理员来说肯定是很实⽤的。

Find --help给出的帮助内容很简单,我们⾸先需要知道的是find的表达式可以由四个主要成分组成:操作符、选项、测试表达式以及动作。

我们最常⽤到是测试表达式和动作这两部分。

先看⼀下着两部分由哪些基本选项组成:如果你需要知道更详细的帮助内容,⽤man⼿册即可:man find⽐如说我想知道-amin这个选项具体是什么意思,⼲什么⽤,在man⼿册给出的⽂档中我们就可以找到:可见,-amin选项帮我们找到的是n分钟前使⽤过的⽂件。

⼜⽐如说-iname这个选项:可见,-iname选项的作⽤就是忽略⽂件名的⼤⼩写,凡是字符匹配的⽂件都对其进⾏打印。

其他的就不再⼀⼀列举了。

看man⽂件找得⽐较慢,所以还是平时多写⼀写常⽤的、实⽤的选项搭配⽐较实际。

⼀、根据⽂件名查找⽂件:根据⽂件名查找⽂件,我们使⽤-name测试选项即可,如果需要忽略⼤⼩写,则可以使⽤-iname选项。

⽐如说,我在桌⾯新建了⼀个⽂件夹testdir,⾥⾯有⽂件如下:颜⾊⾼亮的为⽂件夹,text.php重复,⽅便后⾯练习“通过⽂件类型查找⽂件”。

权限为644和777的⽂件我们在后⾯练习“通过⽂件权限查找”的时候会⽤到。

Tips:Linux中的⽂件权限,4为读,2为写,1为执⾏,权限顺序为⽂件所属⽤户、⽂件所属⽤户组、其他⽤户。

Linux命令高级技巧使用find和xargs进行文件搜索和批量处理

Linux命令高级技巧使用find和xargs进行文件搜索和批量处理

Linux命令高级技巧使用find和xargs进行文件搜索和批量处理Linux操作系统拥有强大的命令行工具,其中find和xargs是常用的两个命令,对于文件搜索和批量处理提供了高级技巧。

本文将介绍如何使用find和xargs命令,并展示它们在文件管理中的广泛应用。

一、find命令概述find命令用于在指定目录下搜索符合条件的文件,并对其执行相应操作。

其基本语法如下:find [路径] [选项] [操作]其中,路径表示要搜索的目录路径,选项用于指定搜索条件,操作则是对搜索结果执行的操作。

二、使用find命令进行文件搜索1. 根据文件名搜索我们可以根据文件名来搜索文件,以查找名为"example.txt"的文件为例:```shellfind /path/to/directory -name example.txt```上述命令将在指定目录下搜索名为"example.txt"的文件并返回结果。

2. 根据文件类型搜索通过指定文件类型,我们可以搜索特定类型的文件。

例如,要搜索所有的文本文件:```shellfind /path/to/directory -type f -name "*.txt"```这条命令将在指定目录下搜索扩展名为".txt"的所有文件。

3. 根据文件大小搜索find命令还可以根据文件大小进行搜索。

下面的示例演示了如何搜索大于100MB的文件:```shellfind /path/to/directory -size +100M```这条命令将在指定目录下搜索大小大于100MB的文件。

三、使用xargs命令进行批量处理xargs命令可以将来自标准输入的数据作为命令行参数传递给其他命令。

这使得我们能够批量处理文件。

下面是一些常见的xargs用法示例。

1. 批量复制文件假设我们想将所有的txt文件从一个目录复制到另一个目录。

Linux文件查找神器命令find:查找大于或者小于某大小的文件

Linux文件查找神器命令find:查找大于或者小于某大小的文件

Linux⽂件查找神器命令find:查找⼤于或者⼩于某⼤⼩的⽂件Linux, 刚好有个需求,就是查找少于1K的⽂件,然后对这些⽂件进⾏删除操作.命令如下:ind . -type f -name "*.log" -size -1k | xargs rm -rf授之以鱼不如授之以渔Find Files Bigger Or Smaller Than X SizeUsing find command, we can also easily find files bigger or smaller than given size.For instance, to find files that are bigger than 4GB in a directory, just enter:$ find . -type f -size +4GSample output from my system:./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi./VirtualBox VMs/Ubuntu 16.04 Server/Ubuntu 16.04 Server.vdi./Soft_Backup/VHD's/Antergos/Antergos.vdi./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi./Soft_Backup/VHD's/Ubuntu 17.04 server/Ubuntu 17.04 server.vdi./Soft_Backup/VHD's/Fedora 23_/Fedora 23 .vdi./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi./Soft_Backup/VHD's/Debian 8 Desktop/Debian 8 Desktop.vdi./Soft_Backup/VHD's/FreeBSD 10.3 server/FreeBSD 10.3 server.vdi./Soft_Backup/VHD's/OpenMandriva Lx 3 desktop/OpenMandriva Lx 3 desktop.vdi./Soft_Backup/VHD's/Elementary OS_/Elementary OS_.vdi./Soft_Backup/OS Images/Linux/openSUSE-Leap-42.1-DVD-x86_64.iso/openSUSE-Leap-42.1-DVD-x86_64.iso[...]As you can see, I have some files with size bigger than 4GiB. Here, the dot (.) indicates the current directory.To search for files bigger than 4 GiB in the entire filesystem, run:$ find / -type f -size +4GTo know files bigger than X size in a specific directory, replace the dot (.) in the above command with the directory path like below.$ find Downloads/ -type f -size +4GThe above command find files bigger than 4 GiB in Downloads directory.Similarly, to find the files which are smaller than X size, for example 4GiB, use the following command:$ find . -type f -size -4GYou can use size switch for other formats, such as`c' for bytes'w' for two-byte words`k' for Kilobytes`M' for Megabytes`G' for GigabytesFor example, to find files which are bigger than 4MB, use the following command:$ find . -type f -size +4MTo find files smaller than 4MB, use this command:$ find . -type f -size -4MYou might wonder how to find files between a certain size. For instance, you can find files between 30MB and 40MB using the followingcommand:$ find -size +30M -size -40MTo find files of exact size, for example 30MB, run:$ find -size 30MFor more details, refer man pages.$ man findUpdate:As one of the reader mentioned in the comment section below, the find command can also display a long listing of all the files it finds by using the -exec switch. The command below will find all of the files between 30M and 40M, and display a long listing of each file.$ find . -type f -size +30M -size -40M -exec ls -l {} +⽂章链接:。

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理的高级技术

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理的高级技术

Linux命令高级技巧利用find与xargs命令进行批量文件权限的修改与管理的高级技术在Linux系统中,find与xargs命令是实现批量文件权限修改与管理的高级技术。

利用这两个命令的强大功能,我们可以轻松地对文件或目录进行权限的批量修改,提高工作效率。

本文将介绍Linux命令高级技巧,详细解释find与xargs命令的使用方法,并提供实例演示。

一、find命令的基本使用find命令是Linux系统中常用的查找文件和目录的命令。

它支持根据文件名、文件类型、文件时间等多个条件进行搜索,具有非常强大的灵活性。

下面是find命令的基本语法:find [path] [expression]其中,path表示要进行搜索的路径,可以是绝对路径或相对路径。

expression表示搜索的条件,可以是文件名、文件类型、文件大小等。

1.1 根据文件名查找我们可以使用find命令根据文件名查找文件或目录。

以下是一个例子:```shellfind /home -name test.txt```上述命令将在/home目录下查找文件名为test.txt的文件。

如果要查找某个目录及其子目录下的文件,可以使用通配符*:```shellfind /home -name "*.txt"```上述命令将查找/home目录及其子目录下的所有以.txt结尾的文件。

1.2 根据文件类型查找除了根据文件名查找,find命令还支持根据文件类型进行查找。

以下是一个例子:```shellfind /home -type f```上述命令将在/home目录下查找所有的文件。

同样地,我们可以使用不同的参数来搜索特定类型的文件。

例如,要查找所有的目录,可以使用参数-d:```shellfind /home -type d```1.3 根据文件时间查找find命令还可以通过文件的修改时间或访问时间进行搜索。

以下是一个例子:```shellfind /home -mtime +7```上述命令将在/home目录下查找所有7天前被修改的文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1
6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。
3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
5、为了查找系统中所有属于root组的文件;
6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
7、为了查找当前文件系统中的所有目录并排序;
Linux文件查找命令find,xargs详述
总结:zhy2111314
来自:
整理:北南南北
摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhyfly兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读;
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
4、使用exec或ok来执行shell命令
使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的
在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;
$ find ~ -print
2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
$ find . -type f -perm 644 -exec ls -l { } \;
3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
$ find /dev/rmt -print
三、xargs
xargs - build and execute command lines from standard input
在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令
$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
2、find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
$ find logs -type f -mtime +5 -exec rm { } \;
记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n
按y键删除文件,按n键不删除。
任何形式的命令都可以在-exec选项中使用。
在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。
版权声明
本文是zhyfly兄贴在 的一个帖子而整理出来的,如果您对版权有疑问,请在本帖后面跟帖。谢谢;本文的HTML版本由北南南北整理;修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题;为标题加了编号,方便大家阅读;
前言:关于find命令
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:
8、查找比某个文件新或旧的文件
9、使用type选项
10、使用size选项
11、使用depth选项
12、使用mount选项
五、关于本文
六、相关文档
+++++++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++++++
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
一、find 命令格式
1、find命令的一般形式为;
find pathname -options [-print -exec -ok ...]
相关文档
最新文档