linux列出一个目录及其子目录下面的某种类型的文件

linux列出一个目录及其子目录下面的某种类型的文件

作者:smarteng ⁄ 时间:2009年07月09日 ⁄ 分类: Linux命令 ⁄ 评论:0

怎么样把,一个目录及其所有的子目录下面的某种类型(比如*.gif)的文件全部列出来?
这些子目录下面可能还包含有目录,要想全部列出*.gif的文件

find . -name "*.gif"

linux find命令-exec参数的使用说明(笔记)

关键词: Linux   find -exec

前言:最近几天使用find的高级功能,但执行到 -exec命令的时候总是提示错误

信息如下:“find: missing argument to `-ok‘ ”,花了点时间,研究了下帮助(man),终于是搞清楚了。

说明:find命令,配合-exec参数,可以对查询的文件进行进一步的操作,可以得到很多有用的功能,比如说文件包含特定字符串的查询等,要了解这个功能,最简单直接的就是看find命令帮助,列出

-exec command ;
               Execute command; true if 0 status is returned.   All   following   arguments   to find are taken to be arguments to the command until an   argument   consisting of #;‘ is encountered.   The string {}‘ is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find.   Both of these constructions might need to be escaped (with a \‘) or quoted to   protect   them   from   expansion   by the shell.   The command is executed in the starting directory.

其实只要读懂这段话就理解了

废话少说,这里简单说明一下

-exec 参数后面跟的是 command命令,注意点如下:

command命令的终止,使用 ‘;‘ (分号)来判定,在后面必须有一个 ‘;‘

‘{}‘,使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理

特别强调,对于不同的系统,直接使用分号可能会有不同的意义, 使用转义符 ‘\‘在分号前明确说明,对于前面我们遇到的问题,主要就是这个原因引起的!

举例:

1.查询所有保护字符串“Hello”的文件

find / -exec grep "Hello" {} \;

2.删除所有临时文件

find / -name "*.tmp" -exec rm -f {} \;

。。。。。。。。

如何批量更改文件权限

我处理 ftp 上传资源时,最常用的命令是这样,不过要小心后果
代码:

find . -type f -exec chmod 644 "{}" \; find . -type d -exec chmod 755 "{}" \;

别用这个命令处理系统中原有的文件就可以了
find 会遍历每个文件,其中每一个都临时以 "{}" 来标识

时间: 2024-12-29 15:58:30

linux列出一个目录及其子目录下面的某种类型的文件的相关文章

linux删除同目录及子目录下统一扩展名的文件

find . -name '*.csv' -type f -print -exec rm -rf {} \; 利用find去查找文件,点是指当前目录下,引号中是相应的数据的名称,自己可以定义,然后用type指明是f,文件类型,-print是打印出来,刚才我自己执行是到这一步先打印了一下,然后稍微观察了一下自己将要删除的内容是否与预期相同,然后用一个-exec说明我接下来是要执行命令的,rm -rf 是删除命令,后面的大括号和分号还有反斜杠我也还不是很清楚.. 原文地址:https://www.c

Linux复制指定目录及子目录下特定类型的文件

主要参考这个: http://www.2cto.com/os/201208/144996.html 拷贝一些内容就是: 首先建立一个用于测试的目录 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成 Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2. Step2 组合使用find及xa

删除一个目录及其子目录下的所有.svn文件

今天建立svn,加入代码,发现这些个文件夹中竟然已经有.svn文件夹,也就是它以前使用过svn, 这下就有点麻烦,在全新的svn里,这些.svn需要删除,又不可能一个一个手工去删除 网上翻了一下,发现一大段代码,很不整洁的代码,不想用,直接写了个小函数   代码如下: 直接调用即可: scanfiles('c:\wingsbook'); function scanfiles($pfile){ $dirs=scandir($pfile); foreach($dirs as $file){ $tmp

列出一个目录中的所有文件

file/ls1.c 1 #include "apue.h" 2 #include <dirent.h> 3 int 4 main(int argc, char *argv[]) 5 { 6 DIR *dp; 7 struct dirent *dirp; 8 if (argc != 2) 9 err_quit("usage: ls directory_name"); 10 if ((dp = opendir(argv[1])) == NULL) 11 e

递归列出一个目录下所有的文件夹和文件

package chapter10; import java.io.File; /** * 列出一个目录下所有的文件夹和文件 * */public class TestFile02 { public static void main(String[] args) { File file = new File("E:\\av"); listFile(file); } public static void listFile(File file) { File[] files = file.

打印 指定目录下和子目录下的的所有.java文件的路径. (使用FileFilter过滤器)

1 package test; 2 /* 3 * 打印 指定目录下和子目录下的的所有.java文件的路径. 4 * */ 5 import java.io.*; 6 import java.util.*; 7 8 public class Test14 9 { 10 public static void main(String[] args) 11 { 12 File dir = new File("C:\\Users\\Dell\\Workspaces\\MyEclipse 10")

Linux编程 5 (目录重命名与移动mv,删除文件rm,目录创建mkdir删除rmdir,查看file,cat,more,tail,head)

一. 文件重命名与移动(mv) 在linux中,重命名文件称为移动(moving).mv命令可以将文件和目录移动到另一个位置或重新命名. 1.1 使用mv重命名 下面在/usr/local下面创建一个空文件为test, 使用mv命令重命名为test1, 查看inode编号和时间将会保持不变,因为mv只影响文件名.如下图所示: 1.2 使用mv移动位置 下面使用mv将 local下的test1文件 移动到/src目录下,inode编号和时间将会保持不变,只是移动了位置,如下图所示: 上图移动文件时

如何在Linux下拷贝一个目录呢

cp -af newadmin/movie/.   uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/mnt/temp,首先想到的就是 cp -R /home/usera/* /mnt/temp 但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的. 那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道. 其实没这么复杂,Google了之后,学了一

Linux rm(删除一个目录中的一个或多个文件或目录或删除非空目录)

rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑. 命令格式: rm [选项] 文件- 命令功能: 删除一个目录中的一个或多个文件或目录,如