bash脚本面试题

发布时间 2023-11-02 16:11:59作者: Mugetsukun

(20231102)
面试题:三剑客专题 | cnblogs | ZhangHe

find

找出/test.dir目录下的文件名中包含test关键字的文件并将其全部删除

方法一:使用 find 命令和通配符配合删除文件

find /test.dir -type f -name '*test*' -exec rm {} +

解释:

  • find /test.dir:在 /test.dir 目录下进行查找。
  • -type f:只查找普通文件。
  • -name '*test*':查找文件名中包含关键字 "test"。
  • -exec rm {} +:删除找到的文件。
    方法二:使用 grep 命令和 xargs 命令配合删除文件
ls /test.dir | grep 'test' | xargs -I {} rm /test.dir/{}

解释:

  • ls /test.dir:列出 /test.dir 目录下的所有文件。
  • grep 'test':筛选包含关键字 "test" 的文件名。
  • xargs -I {} rm /test.dir/{}:通过管道将文件名传递给 xargs 命令,并使用 {} 表示文件名,执行 rm 删除文件。
    请注意,在使用以上方法删除文件之前,一定要确保你理解并验证了要删除的文件,并且确保没有重要文件会被误删除。

查找/etc目录下以tions结尾的目录或者文件然后把其详细信息保存到/tmp/下的test.txt文件下

find /etc -type d -name '*tions' -o -type f -name '*tions' -exec ls -l {} \; > /tmp/test.txt

解释:

  • find /etc:在 /etc 目录下进行查找。
  • -type d:查找目录。
  • -name '*tions':查找名字以 "tions" 结尾的目录。
  • -o:表示“或”的逻辑操作符。
  • -type f:查找文件。
  • -exec ls -l {} \;:对于找到的目录或文件,使用 ls -l 命令显示详细信息。
  • > /tmp/test.txt:将详细信息输出到 /tmp/test.txt 文件中。
    请注意,在运行该命令之前,请确保你有足够的权限来访问 /etc 目录和创建/写入 /tmp/test.txt 文件。

查找/etc/下大于5M的文件或目录并显示其详细信息

你可以使用 find 命令来查找 /etc 目录下大于 5M 的文件或目录,并显示其详细信息。以下是示例命令:

find /etc -size +5M -exec ls -lh {} \;

解释:

  • find /etc:在 /etc 目录下进行查找。
  • -size +5M:查找大于 5M 的文件或目录。
  • -exec ls -lh {} \;:对于找到的文件或目录,使用 ls -lh 命令显示详细信息。
    请注意,查找和显示 /etc 目录下大于 5M 的文件或目录可能需要较长的时间,具体取决于目录层次结构的大小和系统性能。也可以根据自己的需要调整文件大小的表示方式,如使用 G 表示 GB 或 K 表示 KB。