Bootstrap

一、详细解释:文件与目录操作命令

1. ls – 列出目录内容
  • 用途:查看目录中的文件和子目录信息。

  • 语法

    ls [选项] [目录路径]
    
  • 常用选项

    • -l:以长格式显示详细信息(权限、所有者、大小、修改时间等)。
    • -a:显示所有文件(包括隐藏文件,以 . 开头的文件)。
    • -h:以易读格式显示文件大小(如 2K1.5M)。
    • -t:按修改时间排序(最新文件在前)。
  • 示例

    ls -lah /var/log  # 查看/var/log下所有文件的详细信息(含隐藏文件)
    

    输出示例

    drwxr-xr-x 2 root root 4.0K Aug 10 09:00 apt
    -rw-r--r-- 1 root root 1.2M Aug 11 12:34 syslog
    

2. cd – 切换目录
  • 用途:进入指定目录。

  • 语法

    cd [目录路径]
    
  • 特殊符号

    • cd ~cd:返回当前用户的家目录(如 /home/user)。
    • cd ..:返回上级目录。
    • cd -:返回上一次所在的目录。
  • 示例

    cd /etc/nginx     # 进入/etc/nginx目录
    cd ..             # 返回上一级(/etc)
    

3. cp – 复制文件/目录
  • 用途:复制文件或目录到目标位置。

  • 语法

    cp [选项] 源文件 目标路径
    
  • 常用选项

    • -r:递归复制目录(复制目录及其内容)。
    • -i:覆盖前提示确认。
    • -v:显示复制过程(verbose)。
  • 示例

    cp -rv /data/backup /mnt/backup  # 递归复制/data/backup到/mnt/backup,并显示过程
    
  • 注意事项
    若目标路径已存在同名文件,默认会直接覆盖!建议重要操作前先备份。


4. mv – 移动/重命名文件
  • 用途:移动文件/目录到新位置,或重命名文件/目录。

  • 语法

    mv [选项] 源文件 目标路径
    
  • 行为差异

    • 移动:当目标路径是目录时,将文件移动到该目录。
    • 重命名:当目标路径是文件名时,直接重命名。
  • 示例

    mv old_report.txt new_report.txt  # 重命名文件
    mv *.log /var/log/archive/        # 移动所有.log文件到/var/log/archive
    

5. rm – 删除文件/目录
  • 用途:删除文件或目录(谨慎使用!)。

  • 语法

    rm [选项] 文件或目录
    
  • 常用选项

    • -r:递归删除目录及其内容。
    • -f:强制删除(忽略不存在的文件,不提示确认)。
  • 示例

    rm -rf /tmp/cache  # 强制删除/tmp/cache目录及其所有内容
    
  • 危险操作
    rm -rf / 会删除根目录下的所有文件(系统毁灭性操作!)。

    rm -rf /* 命令会删除根目录下的所有文件和子目录,这包括系统中所有的文件和目录。因此,这个命令会导致系统崩溃,因为它会删除一些系统必需的文件和目录,这可能会导致无法启动系统或者系统功能受到极大的破坏。这个命令是非常危险的,除非你知道自己在做什么,否则不要使用!!!

  • 建议

    1. 删除前用 ls 确认路径。

    2. 使用 trash-cli 工具替代(将文件移至回收站):

      sudo apt install trash-cli    # 安装
      trash-put file.txt           # 删除到回收站
      

6. find – 搜索文件
  • 用途:根据名称、类型、时间等条件搜索文件。

  • 语法

    find [搜索路径] [匹配条件] [操作]
    
  • 常用条件

    • -name "*.log":按名称匹配(支持通配符 *)。
    • -type f:仅搜索文件(d 表示目录)。
    • -mtime +7:搜索修改时间超过7天的文件。
  • 示例

    # 查找/home下所有大于10MB的.log文件并删除
    find /home -name "*.log" -size +10M -exec rm {} \;
    
    # 查找30天前修改的文件并压缩备份
    find /var/log -type f -mtime +30 -exec gzip {} \;
    

7. chmod – 修改文件权限
  • 用途:控制文件/目录的读(r)、写(w)、执行(x)权限。

  • 权限表示

    • 符号模式u(所有者)、g(所属组)、o(其他用户)
      示例:chmod u+x script.sh(给所有者添加执行权限)。
    • 数字模式:三组数字分别对应所有者、组、其他用户的权限。
      权限计算:r=4w=2x=1(如 755 = rwxr-xr-x)。
  • 示例

    chmod 644 config.conf    # 所有者可读写,其他人只读
    chmod u+x backup.sh      # 允许所有者执行脚本
    

8. chown – 修改文件所有者
  • 用途:更改文件/目录的所有者或所属组。

  • 语法

    chown [用户]:[] 文件或目录
    
  • 示例

    chown alice:developers app.py  # 将app.py所有者设为alice,组设为developers
    chown -R www-data:www-data /var/www  # 递归修改/var/www下所有文件的所有者和组
    

9. tar – 打包与压缩文件
  • 用途:将多个文件/目录打包为单个文件(支持压缩)。

  • 常用选项

    • -c:创建新归档文件。
    • -x:解压归档文件。
    • -z:使用 gzip 压缩/解压(文件后缀 .tar.gz)。
    • -v:显示处理过程。
    • -f:指定归档文件名。
  • 示例

    # 打包并压缩目录
    tar -czvf backup.tar.gz /data
    
    # 解压到当前目录
    tar -xzvf backup.tar.gz
    
    # 解压到指定目录
    tar -xzvf backup.tar.gz -C dir/
    
    # 仅查看压缩包内容(不解压)
    tar -tzvf backup.tar.gz
    
10.zip

压缩后的文件后缀名为 .zip

与 gzip 或 bzip2 不同,zip 可以压缩多个文件或整个目录,并保留文件的目录结构。

zip 在跨平台(如 Windows、macOS)上也广泛支持。

语法

zip [options] output.zip file1 file2 ...
  • output.zip:生成的压缩文件名。
  • file1 file2 ...:要压缩的文件或目录。

options 参数选项:

  • -r:递归压缩目录及其子目录中的所有文件。
  • -e:为压缩文件设置密码保护。
  • -q:静默模式,不显示压缩过程。
  • -v:显示详细的压缩过程。
  • -x:排除某些文件或目录,不进行压缩。
  • -m:压缩后删除原始文件。
  • -0-9:指定压缩级别,-0 表示存储不压缩,-9 表示最高压缩率,默认是 -6

实例

压缩单个文件

zip archive.zip example.txt

此命令会将 example.txt 压缩为 archive.zip。

压缩多个文件

zip archive.zip file1.txt file2.txt file3.txt

此命令会将 file1.txt、file2.txt 和 file3.txt 压缩到 archive.zip 中。

递归压缩目录

zip -r archive.zip directory/

此命令会递归压缩 directory 目录及其子目录中的所有文件,并保留目录结构。

压缩并设置密码保护

zip -e archive.zip file.txt

此命令会压缩 file.txt 并设置密码保护,解压时需要输入密码。

排除特定文件

zip -r archive.zip directory/ -x "*.log"

此命令会压缩 directory/ 目录下的所有文件,但排除所有 .log 文件。

压缩后删除原始文件

zip -m archive.zip file.txt

此命令会将 file.txt 压缩为 archive.zip,并删除原始文件 file.txt。

解压缩文件

使用 unzip 命令来解压缩 .zip 文件:

unzip archive.zip

这会将 archive.zip 文件解压缩到当前目录,保留原始目录结构和文件。


小贴士:文件操作安全实践

  1. 备份重要文件

    cp critical_file.txt{,.bak}  # 快速备份(生成critical_file.txt.bak)
    
  2. 确认路径后再删除

    ls -l /path/to/delete      # 先查看
    rm -rf /path/to/delete    # 再删除
    
  3. 使用 file 命令检查文件类型

    file unknown_file  # 输出文件类型(如文本、二进制、压缩包等)
    
;