首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何保存` `find -exec`结果并用于比较`FILE OWNER`,不管空白文件名?

在Linux系统中,find -exec命令可以用于在指定目录下查找文件,并对找到的每个文件执行特定的操作。如果我们需要保存find -exec命令的结果,并用于比较文件的所有者(OWNER),包括空白文件名,可以采取以下步骤:

  1. 使用find命令来查找目标文件并将结果保存到一个文件中,可以使用-print0参数来以空字符作为文件名分隔符,以应对空白文件名的情况。例如:
代码语言:txt
复制
find /path/to/directory -type f -print0 > file_list.txt

上述命令将在/path/to/directory目录下查找所有文件,并将结果保存到file_list.txt文件中,文件名之间以空字符分隔。

  1. 创建一个Shell脚本(比如compare_owner.sh),用于比较文件所有者。脚本内容如下:
代码语言:txt
复制
#!/bin/bash

while IFS= read -r -d '' file; do
    owner=$(stat -c %U "$file")
    if [ "$owner" = "desired_owner" ]; then
        echo "$file has the desired owner."
    else
        echo "$file does not have the desired owner."
    fi
done < file_list.txt

注意将desired_owner替换为你希望比较的所有者用户名。

  1. 执行脚本:
代码语言:txt
复制
bash compare_owner.sh

脚本将逐行读取file_list.txt中的文件名,并使用stat命令获取每个文件的所有者。然后,将所有者与desired_owner进行比较,并输出比较结果。

关于上述过程中的一些名词概念、分类、优势和应用场景,我们可以进行如下说明:

  • find命令:Linux系统中的一个强大的文件搜索命令,用于在指定目录下查找符合指定条件的文件。
  • -exec参数:find命令的一个选项,用于对找到的每个文件执行特定的操作。
  • 文件所有者(FILE OWNER):指定文件的所有者用户。
  • Shell脚本:一种编程语言,用于在Unix或Linux环境下编写脚本程序。
  • stat命令:用于显示文件或文件系统的详细信息,包括文件的访问权限、所有者、大小等。
  • 文件名分隔符(null character):在Linux中,文件名可以包含空格或其他特殊字符,使用空字符作为文件名分隔符可以确保对这些特殊文件名的正确处理。

这些技术和工具的应用场景非常广泛,可以用于系统管理、自动化任务、文件处理等各个方面。例如,我们可以使用这些方法来批量处理文件、批量修改文件权限或所有者、监视文件系统变化等。

对应的腾讯云产品,可以推荐使用以下产品来支持上述过程:

  • 云服务器(CVM):提供灵活可靠的云主机服务,可用于执行上述操作的服务器环境。
  • 云存储(COS):提供海量、安全、低成本的云端存储服务,可以用于存储file_list.txt文件以及处理后的文件列表。
  • Linux虚拟机(Linux CVM):提供基于Linux操作系统的云服务器实例,用于运行Shell脚本和执行文件操作。

以上是关于如何保存find -exec结果并用于比较文件所有者的完善且全面的答案。希望能对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux常用命令之查阅文件用法选项功能键用法选项DEMO用法选项选项注意选项注意选项注意用法选项

nonblank 输出空白行的行号 -A show All 显示特殊字符 TAC tac – concatenate print files reverse 反序的查看文件 MORE more – 一页一页翻动...功能键 空格space 下一页 enter 下一行 /xxx 向下搜索xxx n 搜索下一个 :f 显示文件名显示行号 q 退出 b或ctrl+b 向上翻页 LESS 也是一页一页的翻动 比more...-newer file,表示筛选出比file要新的文件 用户筛选 -user name 筛选出owner为name的文件 -group name 筛选出group为name的文件 -nouser 筛选出...command 执行其他指令 find / -size +500k -exec ls -l {} \; 在根目录下以及根目录的所有子目录下,搜索出大小大于500kb的文件,并且列出详细信息 {}:代表...find搜索到的结果 \; :表示其他指令的结束

1.7K50

《Linux就该这么学》笔记(四)

文件目录管理命令 touch 用于创建空白文件或设置文件的时间 touch [选项] [文件] -a 仅修改读取时间(atime) -m 仅修改修改时间(mtime) -d 同时修改 atime...设置每个块的大小 count 设置要复制块的个数 dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件 dd if=/dev/zero of...=560_file count=1 bs=560M 使用dd命令来压制出光盘镜像文件 dd if=/dev/cdrom of=RHEL-server.iso file 用于查看文件的类型 file 文件名.../etc 解压 tar -xzvf etc.tar.gz -C /root/etc grep 用于在文本中执行关键词搜索,显示匹配的结果 grep [选项] [文件] -b 将可执行文件(binary...··· {} \; 进一步处理搜索结果命令 在整个文件系统中找出所有归属于linuxprobe用户的文件复制到/root/findresults目录 find / -user luoxiaolei

62110
  • Linux命令篇(一):文件管理部分

    testfile.txt 命令使用总结 cat testfile 会将指定文件的内容输出到终端上 cat命令可以实现创建文件的作用, cat > testfile如果testfile文件不存在会自动创建文件保存即可...differ: char 4, line 1 6、diff命令 diff命令主要是对文件以行的形式做对比,从而比较两个文件的差异 常用参数 -b:不检查空格字符的不同 -B:不检查空白行 -c :显示全部内文...file test.log test.log: UTF-8 Unicode text 8、find命令 find命令用于在指定目录下查找文件和目录,它可以使用不同的选项来过滤和限制查找的结果,命令格式如下...的文件删除 find ....-name "test.sh" -exec rm {} \; 以上例子中,-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,; 表示命令结束。

    7910

    LInux中的查找

    grep 命令用于查找文件里符合条件的字符串的一列。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。...参考文章 二、find 2.1 基本用法 用于在文件树中(目录结构下)查找文件,并作出相应的处理 。 命令参数 pathname: find命令所查找的目录路径。...-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,考虑到各个系统中分号会有不同的意义,前面加反斜杠\。 示例 在目录中查找更改时间在n日以前的文件删除它们 find ....-type f | xargs file 在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中 find / -name "core" -print...| xargs echo "" >/tmp/core.log 在当前目录下查找所有用户具有读、写和执行权限的文件,收回相应的写权限· find .

    16.1K10

    Linux命令(31)——find命令

    1.简介 find命令用于在指定目录查找文件,可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳来查找文件。...-exec [command] ;:注意有个分号";"结尾,该action是用于执行给定的命令。...由于在使用"-print"时所有的结果都有换行符,如果直接将结果通过管道传递给管道右边的程序,应该要考虑到这一点:文件名中有空白字符(换行符、制表符、空格)将会被右边程序误分解,如文件"ab c.txt...-type f -user root -exec chown tom {} \; 上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。...-type f -mtime +30 -name "*.log" -exec cp {} old \; #找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来 find .

    2K50

    Linux 文件管理命令语法、参数、实例全汇总(一)

    命令:cat cat 命令用于连接文件打印到标准输出设备上。...命令:diff Linux diff命令用于比较文件的差异。 diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。...-N或--new-file  在比较目录时,若文件A仅出现在某个目录中,预设会显示: Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。...语法格式 find path -option [ -print ] [ -exec -ok command ] {} ; 参数说明 find 根据下列规则判断 path...-type f -perm 644 -exec ls -l { } ; 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径: $ find / -type f -size 0 -exec ls

    1.4K60

    【linux命令讲解大全】011.使用find命令在指定目录下查找文件及应用技巧和选项详情

    :假设 find 指令的回传值为 True,就执行该指令; -false:将 find 指令的回传值皆设为 False; -fls:此参数的效果和指定 -ls 参数类似,但会把结果保存为指定的列表文件...参数类似,但会把结果保存成指定的列表文件; -fprintf:此参数的效果和指定 -printf 参数类似,但会把结果保存成指定的列表文件; -fstype:只寻找该文件系统类型下的文件或目录...-type f -user root -exec chown tom {} \; 上例中,{} 用于与 -exec 选项结合使用来匹配所有文件,然后会被替换为相应的文件名。...找出自己家目录下所有的 .txt 文件删除 find $HOME/....-type f -mtime +30 -name "*.log" -exec cp {} old \; 找出当前目录下所有 .txt 文件并以“File:文件名”的形式打印出来 find .

    1.6K10

    常用lunix命令面试题_五个常见的linux命令

    /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 find / -name \*.rpm -exec chmod 755 ‘{}’ \; 搜索以 ‘.rpm...’ 结尾的文件定义其权限 find / -xdev -name \*.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备 locate \*.ps 寻找以 ‘.ps’ 结尾的文件 –...取出两个文件的交集(只留下同时存在于两个文件中的文件) comm -1 file1 file2 比较两个文件的内容只删除 ‘file1’ 所包含的内容 comm -2 file1 file2 比较两个文件的内容只删除...‘file2’ 所包含的内容 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分 备份 dump -0aj -f /tmp/home0.bak /home 制作一个 ‘...’ 结尾的文件到另一个目录 find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2 查找所有以 ‘.log’ 结尾的文件做成一个

    92420

    linux常用命令、bash语法学习笔记,持续记录

    -g gnuplot-file 把所有测试结果写入一个’gnuplot’或者TSV (以Tab分隔的)文件。...,显示匹配的结果,格式: grep [选项] [文件]。......... { }\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示) -exec参数用于find命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于 find命令对参数的特殊要求...参数: if 输入的文件名称 of 输出的文件名称 bs 设置每个“块”的大小 count 设置要复制的“块”的个数 23. file命令 file命令用于查看文件的类型,格式: file 文件名。...强行退出,不保存退出 wq 保存退出 x 保存退出 25. echo命令 echo命令用于在终端输出字符串或变量提取后的值,格式: echo [字符串| $变量]。

    1.6K30

    Linux命令查找文件或目录 find及结合xargs应用

    二、find命令常用参数说明   -name 按照文件名查找文件   -cpio: 对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中  -prune 按照文件权限进行查找文件    -...file2 查找更改时间比 file1 新但比 file2 旧的文件 -follow 如果 find 查找的为链接文件,就跟踪至连接所指向的文件 -mount 在查找文件时不跨越文件系统 mount...基本用法 find 如不加任何参数,表示查找当前路径下的所有文件和目录 find -print 将结果打印到标准输出 find /data/log 指定路劲查找   find...find . -type f -name "\.log" -print | xargs rm  查找当前目录下的 .log 文件,删除 。   find ....find logs -type f -mtime +5 -exec rm {} \; 查找 log 中更改时间在 5 天前的文件删除。

    4.2K20

    Shell(Linux)常用命令

    前言 所谓Shell(壳),一般是指由操作系统提供的,用于计算机用户向操作系统输入相关指令并得到结果的程序。Shell可以字符形式的,也可以是图形界面形式的。...dils格式 -print 完整的文件名添加一个回车换行符 -print0 打印完整的文件名并不添加一个回车换行符 -printf format 打印格式 ​ 示例: 查找文件名: # find...-type f -exec file '{}' \; 查找文件权限是664: # find . -perm 664 查找大于1024k的文件: # find ....-n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。 -N或–name  压缩文件时,保存原来的文件名称及时间戳记。 -q或–quiet  不显示警告信息。...权限类 chown(文件所有者) chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。 Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。

    3.1K30
    领券