明白了,下面是10道题目及其对应的示例文件和目录结构。如果这些文件在你的系统中不存在,你可以使用示例文件和目录结构进行练习:

troubleshooting

  1. 查找并统计 /home 目录下所有 .txt 文件的数量。

    示例文件结构:

    /home/user/
    ├── document1.txt
    ├── notes.txt
    └── image.png

    find /home -type f -name "*.txt" | wc -l

  2. 列出 /etc 目录下所有以 .conf 结尾的文件,并按文件名排序。

    示例文件结构:

    /etc/
    ├── config1.conf
    ├── config2.conf
    └── settings.cfg

    find /etc -type f -name "*conf" | sort

  3. 查找 /var/log 目录下所有文件,显示每个文件的大小并按大小排序。

    示例文件结构:

    /var/log/
    ├── syslog
    ├── auth.log
    └── messages

    find /var/log/ -type f | xargs ls -lS
    find /var/log -type f -exec stat -c "%n:%s" \; | sort -n -k2 -t :
    find /var/log -type f | xargs -I[] stat -c '%n:%s' [] | sort -n -k2

  4. /tmp 目录下最早创建的10个文件移动到 /backup 目录。

    示例文件结构:

    /tmp/
    ├── oldfile1.txt
    ├── oldfile2.txt
    ├── recentfile1.txt
    └── recentfile2.txt
    
    /backup/
    find /var/log -type f -exec stat -c '%n:%W' {} +  | sort -k2 -t: -n |  head -10 | cut -d : -f1 | xargs -i cp {} /backup
  1. 查找 /usr 目录下所有大于100MB的文件,并将其复制到 /large_files 目录。

    示例文件结构:

    /usr/
    ├── largefile1.bin
    ├── largefile2.bin
    └── smallfile.txt
    
    /large_files/

    find /usr -type f -size +100M -exec cp {} /large_files \;

  2. 列出 /home/user 目录下的所有文件,并显示文件的行数和文件名。

    示例文件结构:

    /home/user/
    ├── script.sh
    ├── readme.md
    └── data.csv

    find /home/usr -type f | xargs -i wc -l {}

  3. 删除 /temp 目录下所有扩展名为 .log 的文件。

    示例文件结构:

    /temp/
    ├── log1.log
    ├── log2.log
    ├── image.jpg
    └── archive.zip
  4. /var/log/syslog 文件的最后10行内容显示到终端。

    示例文件结构:

    /var/log/
    ├── syslog
    ├── auth.log
    └── messages
  5. /etc/passwd 文件中的前5行内容显示到终端。

    示例文件结构:

    /etc/
    ├── passwd
    ├── group
    └── shadow
  6. 查找 /home 目录下所有文件,计算它们的总行数。

    示例文件结构:

    /home/user/
    ├── file1.txt
    ├── file2.txt
    └── file3.txt

    find /home -type f -exec cat {} \; | wc -l


当然,以下是10道较复杂的题目,利用 findstatlswcsort管道xargsmvcprmheadtailcat 命令来解决。

  1. 查找 /var/log 目录下所有修改时间在过去30天内的 .log 文件,并按修改时间降序排列显示。

    示例文件结构:

    /var/log/
    ├── recent.log
    ├── older.log
    └── old.log
  2. /home/user 目录下所有 .jpg 文件的文件名和文件大小(以字节为单位)列出,并按文件大小升序排列。

    示例文件结构:

    /home/user/
    ├── photo1.jpg
    ├── photo2.jpg
    └── photo3.jpg
  3. 找出 /usr/local 目录下所有比1MB大的文件,并将这些文件的完整路径存储到 /tmp/large_files.txt 文件中。

    示例文件结构:

    /usr/local/
    ├── bigfile1.bin
    └── bigfile2.bin
    
    /tmp/
    └── large_files.txt
  4. /tmp 目录下所有 .tmp 文件的前10行内容合并到一个名为 /tmp/merged.tmp 的文件中。

    示例文件结构:

    /tmp/
    ├── file1.tmp
    ├── file2.tmp
    └── merged.tmp
  5. /var/cache 目录中删除所有最近7天内没有被访问过的 .cache 文件。

    示例文件结构:

    /var/cache/
    ├── old.cache
    └── recent.cache
  6. 查找 /home/user 目录下所有修改时间在过去24小时内的 .txt 文件,并将这些文件的内容附加到 /home/user/recent_files.txt 文件中。

    示例文件结构:

    /home/user/
    ├── recent1.txt
    ├── recent2.txt
    └── recent_files.txt
  7. 统计 /etc 目录下每个文件的行数,并将结果按行数降序排列输出。

    示例文件结构:

    /etc/
    ├── file1.conf
    ├── file2.conf
    └── file3.conf
  8. /home/user 目录下所有 .bak 文件的前5行内容逐个显示,并将这些文件的总行数输出到终端。

    示例文件结构:

    /home/user/
    ├── backup1.bak
    ├── backup2.bak
    └── backup3.bak
  9. /var/tmp 目录下查找所有 .tmp 文件并将它们的总大小计算出来。

    示例文件结构:

    /var/tmp/
    ├── temp1.tmp
    ├── temp2.tmp
    └── temp3.tmp
  10. /home/user 目录下所有 .csv 文件按文件名排序,并将它们逐个拷贝到 /home/user/csv_backup 目录。

    示例文件结构:

    /home/user/
    ├── data1.csv
    ├── data2.csv
    └── csv_backup/

这些题目需要综合使用多个命令来完成,并涉及到文件处理、排序、统计等操作,有助于提高命令行技能。

作者:严锋  创建时间:2024-08-13 12:55
最后编辑:严锋  更新时间:2025-05-09 15:48