常用命令

Linux下快速列出目录的方法与技巧

| 命令 | | 示例 |

|-|-|-|

| `ls` | 列出目录内容 | `ls` |

| `ls -l` | 以长格式显示列表,包括文件的详细信息(权限、所有者、大小等) | `ls -l` |

| `ls -a` | 显示所有文件,包括隐藏文件(以.开头的文件) | `ls -a` |

| `ls -h` | 以人类可读的格式显示文件大小(如1K、1M) | `ls -lh` |

| `ls -r` | 反向排序显示文件列表 | `ls -r` |

| `ls -t` | 按修改时间排序显示文件列表 | `ls -lt` |

| `ls -S` | 按文件大小排序显示文件列表 | `ls -lS` |

| `ls -R` | 递归显示子目录中的文件 | `ls -R` |

| `ls -d` | 仅显示目录本身,而不显示目录下的文件 | `ls -d` |

| `cd` | 切换目录 | `cd /home/user/Documents` |

| `pwd` | 显示当前所在的目录路径 | `pwd` |

| `mkdir` | 创建新的目录 | `mkdir mydir` |

高级技巧

1. 使用`find`命令

  • 递归列出所有文件:`find. -type f`
  • 列出所有文件和目录:`find. -type f -o -type d`
  • 显示详细信息:`find. -type f -ls`
  • 排除特定文件或目录:`find. -type d -name.git -prune -o -type f -ls`
  • 2. 使用`tree`命令

  • 安装`tree`命令:
  • 对于基于Debian的系统(如Ubuntu):`sudo apt-get install tree`
  • 对于基于Red Hat的系统(如CentOS):`sudo yum install tree`
  • 对于基于Arch的系统(如Manjaro):`sudo pacman -S tree`
  • 列出所有文件和目录:`tree -a`
  • 显示文件详细信息:`tree -al`
  • 定制输出:
  • 仅显示目录:`tree -d`
  • 显示每个文件的完整路径:`tree -f`
  • 不显示连接线:`tree -i`
  • 仅显示到指定的深度:`tree -L `
  • 优化目录列表操作

    1. 使用`find`命令的`-print0`和`xargs`组合

  • 命令:`find /path/to/directory -type f -print0 | xargs -0 -I {} command {}`
  • :当处理大量文件时,使用`-print0`选项与`xargs`命令结合可以提高效率。`-print0`会在每个结果后面添加一个null字符作为分隔符,这样即使文件名中包含空格或特殊字符也不会出问题。`xargs`则可以接收这些以null字符分隔的输入并执行批处理操作。
  • 2. 使用`find`命令的`-maxdepth`选项

  • 命令:`find /path/to/directory -maxdepth 1 -type f`
  • :如果你只对指定目录下的文件感兴趣,而不想递归到子目录中,可以使用`-maxdepth`选项来限制搜索深度。
  • 3. 利用`sort`和`uniq`进行文件排序和去重

  • 命令:`find /path/to/directory -type f | sort | uniq`
  • :当文件列表很大且包含重复项时,可以使用`sort`命令对结果进行排序,然后使用`uniq`命令去除重复项。这可以帮助你快速识别重复文件,或者为后续操作准备一个唯一的文件列表。
  • 4. 使用管道和过滤器的链式操作

  • 命令:`find /path/to/directory -type f -name ".txt"! -size 0c | xargs -I {} ls -l {}`
  • :通过将多个命令组合成管道,你可以创建一个强大的命令链,以执行复杂的文件操作。例如,以上命令链将列出指定目录下所有.txt文件,并排除大小为0的文件。在这里,`! -size 0c`用于排除大小为0的文件,`xargs -I {}`用于对每个结果执行`ls -l`命令。
  • 5. 使用`nice`和`ionice`调整优先级

  • 命令:`nice -n 19 ionice -c3 find /path/to/directory -type f`
  • :在执行可能消耗大量系统资源的命令时,可以使用`nice`和`ionice`命令来调整进程的CPU和I/O优先级,以免影响系统其他部分的表现。在这里,`nice -n 19`将进程的CPU优先级设置为最低,而`ionice -c3`将I/O优先级设置为最低(仅适用于支持该选项的系统)。