linux的find命令排序

worktile 其他 878

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Linux中的find命令有很多选项用于搜索和查找文件,但是它默认是按照路径和名称的字母顺序排序输出结果的。如果你想按照其他属性对搜索结果进行排序,可以使用管道和sort命令来实现。

    下面是几种常见的按照不同属性排序的方法:

    1. 按文件大小排序:
    要按文件大小降序排序,可以使用find命令搜索到的结果使用管道传递给sort命令,并以-size选项指定时按照K(千字节)为单位进行排序,使用大写的S表示以字节数进行排序。

    “`shell
    find /path/to/search -type f -exec ls -s {} \; | sort -nr
    “`

    2. 按文件修改时间排序:
    要按文件的修改时间排序,可以使用-sort选项,并以-mtime选项指定按修改时间进行排序,使用+或-号加上天数(单位为24小时)来指定相对于现在多长时间之内修改过的文件。

    “`shell
    find /path/to/search -type f -exec ls -l –time-style=+%s {} \; | sort -nr -k 6
    “`

    3. 按文件访问时间排序:
    要按文件的访问时间排序,可以使用-sort选项,并以-atime选项指定按访问时间进行排序,使用+或-号加上天数(单位为24小时)来指定相对于现在多长时间之内访问过的文件。

    “`shell
    find /path/to/search -type f -exec ls -l –time-style=+%s {} \; | sort -nr -k 7
    “`

    4. 按文件名称排序:
    要按文件名称排序,可以直接使用sort命令,并以字母顺序进行排序。

    “`shell
    find /path/to/search -type f -exec basename {} \; | sort
    “`

    以上是几种常见的按照不同属性排序的方法,根据实际需要选择合适的方法来排序find命令的搜索结果。希望对你有帮助!

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,find命令通过递归搜索文件系统中的文件和目录。它可以根据各种条件和选项来筛选要搜索的文件,并可以执行各种操作,如复制、移动、删除等。默认情况下,find命令按照文件系统的目录结构进行搜索,并按照文件创建的时间顺序列出结果。但是,如果需要按照其他条件进行排序,可以使用find命令的一些选项和用法,如下所示:

    1. 按照文件修改时间排序:使用”-mtime”选项可以按照文件的修改时间来进行排序。例如,使用以下命令可以按照修改时间的先后顺序列出当前目录下的所有文件:

    “`
    find . -type f -mtime -1 -ls
    “`

    在上述命令中,”-mtime -1″表示修改时间在一天之内的文件,”-ls”用于以长格式列出文件信息。

    2. 按照文件访问时间排序:使用”-atime”选项可以按照文件的访问时间来进行排序。例如,使用以下命令可以按照访问时间的先后顺序列出当前目录下的所有文件:

    “`
    find . -type f -atime -1 -ls
    “`

    3. 按照文件大小排序:使用”-size”选项可以按照文件的大小来进行排序。例如,使用以下命令可以按照文件大小的降序列出当前目录下的所有文件:

    “`
    find . -type f -ls | sort -nrk 7,7
    “`

    在上述命令中,”sort -nrk 7,7″用于以第7列的数字进行降序排序,该列表示文件大小。

    4. 按照文件名排序:使用”-name”选项可以按照文件名进行排序。例如,使用以下命令可以按照文件名的字母顺序列出当前目录下的所有文件:

    “`
    find . -type f -name “*.txt” | sort
    “`

    在上述命令中,”-name “*.txt””表示只搜索扩展名为”.txt”的文件,”sort”用于按照文件名进行排序。

    5. 按照文件权限排序:使用”-perm”选项可以按照文件的权限进行排序。例如,使用以下命令可以按照文件权限的升序列出当前目录下的所有文件:

    “`
    find . -type f -perm /u=x,g=r,o=r | sort
    “`

    在上述命令中,”-perm /u=x,g=r,o=r”表示只搜索文件权限为用户可执行、组可读和其他人可读的文件,”sort”用于按照文件权限进行排序。

    通过使用上述选项和用法,可以根据不同的需求对find命令的搜索结果进行排序,以便更方便地查找和处理文件。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux系统中,find命令用于在指定目录下按照给定的条件搜索文件和目录。通过组合使用find命令中的各种选项和参数,可以根据不同的需求对搜索结果进行排序。下面是一些常用的find命令排序选项和操作流程。

    1. 按照文件名排序

    使用以下选项可以按照文件名对搜索结果进行排序:
    – `-name`:按照文件名匹配搜索文件;
    – `-iname`:不区分大小写地按照文件名匹配搜索文件;
    – `-regex`:按照正则表达式匹配搜索文件。

    示例命令:
    “`
    find /path/to/dir -name “*.txt” -type f | sort
    “`

    2. 按照文件大小排序

    使用以下选项可以按照文件大小对搜索结果进行排序:
    – `-size`: 按照文件大小查找文件,可以接受一个以”c”为单位的大小参数。比如`-size +10M`表示查找大于10M的文件,`-size 20M`表示查找大小为20M的文件,`-size -5k`表示查找小于5k的文件。

    示例命令:
    “`
    find /path/to/dir -type f -size +10M | sort -n -r
    “`

    3. 按照文件修改时间排序

    使用以下选项可以按照文件修改时间对搜索结果进行排序:
    – `-mtime`: 按照文件最后修改时间查找文件。可以接受一个以”n”为单位的时间参数。选项的参数可以是`n`(精确为n天前),`+n`(n天前及更早),`-n`(n天之内)。

    示例命令:
    “`
    find /path/to/dir -type f -mtime +7 | sort -n
    “`

    4. 按照文件权限排序

    使用以下选项可以按照文件权限对搜索结果进行排序:
    – `-perm`: 按照文件的权限查找文件。可以接受一个三位或四位的八进制数字来指定权限。三位数字表示用户、组和其他用户的权限,四位数字表示文件特殊权限和SUID、SGID位。比如`-perm 644`表示查找权限为644的文件。

    示例命令:
    “`
    find /path/to/dir -type f -perm 644 | sort
    “`

    5. 按照文件扩展名排序

    使用以下命令可以按照文件扩展名对搜索结果进行排序:
    “`
    find /path/to/dir -type f | rev | sort | rev
    “`
    这个命令会先将文件名倒转,然后进行排序,最后再将文件名倒转回来。

    注意事项:
    – 在使用find命令进行排序时,可以通过结合使用管道和sort命令实现对搜索结果的排序;
    – sort命令可以使用各种排序选项,如-n(按照数值排序),-r(倒序排序)等。根据具体需求选择相应的选项。
    – 在进行文件排序时,要考虑文件名中可能存在特殊字符和空格的情况,可以使用合适的转义字符或引号进行处理。

    总结:
    通过以上的方法和操作流程,可以根据不同的需求对find命令的搜索结果进行排序。根据具体情况选择合适的排序选项和操作方法,以满足自己的需求。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部