ubuntu:常用命令记录

这篇博客详细记录了Ubuntu系统中的一些常用命令,包括解压、查看文件数量和大小、修改文件权限、Docker容器文件操作以及进程查看等。通过实例演示了解这些命令的使用,有助于提升日常Linux操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录常会用到的一些命令

中文解压乱码

# 用如下命令可以正常解压
unzip -O cp936 file.zip

查看当前目录下文件个数

ls -lR | grep "^-" | wc -l # R代表子目录
ls -l folder| grep "^-" | wc -l # 查看指定目录
find ./ -type f | wc -l  # 查看当前目录下包含子目录内所有文件个数, 效率比上面的命令要快

命令行删除指定日期或以前的文件

在Linux系统中,如果你想根据日期来删除文件,可以使用find命令结合rm命令来实现。这里有一些常见的用法示例:

  1. 删除特定日期之前的文件
    如果你想删除所有在特定日期之前创建或修改的文件,可以使用如下命令:
find /path/to/directory -type f -mtime +天数 -exec rm {} \;

例如,删除所有在7天前的文件:

find /path/to/directory -type f -mtime +7 -exec rm {} \;
  1. 删除特定日期(例如2023年1月1日)之前的文件
    如果你想删除特定日期之前的文件,可以使用-newermt选项:
find /path/to/directory -type f -newermt "2023-01-01" ! -newermt "2023-01-02" -exec rm {} \;

或者,如果你只想删除在某个具体日期(例如2023年1月1日)之前创建或修改的文件,可以简化命令为:

find /path/to/directory -type f -mtime +$(date +%s -d "2023-01-01") / $(date +%s) -exec rm {} \;
  1. 假设你想删除某个目录中在特定日期(比如2025年2月12日)创建的所有文件,你可以使用以下命令:
find /path/to/directory -type f -newermt "2025-02-12 00:00:00" ! -newermt "2025-02-13 00:00:00" -exec rm {} \;

这个命令的解释如下:

find /path/to/directory:在指定的目录及其子目录中查找文件。
-type f:只查找文件(不包括目录)。
-newermt "2025-02-12 00:00:00":查找在这个时间之后修改的文件。
! -newermt "2025-02-13 00:00:00":查找不在这个时间之后修改的文件(即,在2025年2月12日当天修改的文件)。
-exec rm {} \;:对于找到的每个文件,执行rm命令来删除它。{}是一个占位符,表示当前找到的文件名。

  1. 使用touch命令修改文件时间戳来删除特定日期的文件
    如果你只是想删除特定日期的文件,但不完全确定文件名,你可以先用touch命令修改文件的访问时间或修改时间,然后使用find命令来删除这些文件。例如,将所有文件的访问时间设置为特定日期,然后删除:
touch -m -d "2023-01-01" /path/to/directory/*
find /path/to/directory -type f -atime +0 -exec rm {} \;

注意事项:
在使用rm命令删除文件之前,建议先使用ls或find命令配合-print选项来查看将要删除的文件列表,以避免误删重要文件。例如:

find /path/to/directory -type f -mtime +7 -print

对于重要数据,建议先进行备份。使用-exec rm {} \;时要格外小心,因为这将直接执行删除操作。你也可以考虑使用-exec echo rm {} \;来先查看哪些文件将被删除。

命令行查看当前目录下所有子目录内文件个数

在Ubuntu中,你可以使用find命令结合管道和wc命令来查看每个子目录中的文件数量。以下是一个命令示例,它会递归地统计当前目录下所有子目录中的文件数量:

for dir in */ ; do echo "$dir has $(find "$dir" -type f | wc -l) files"; done

这个命令会列出当前目录下的每个子目录,以及每个子目录中的文件数量。

解释:

for dir in */ ; do: 对当前目录下的每一个子目录执行循环。
echo "$dir has $(find "$dir" -type f | wc -l) files": 输出子目录的名字和在其中找到的文件数量。
find "$dir" -type f: 查找子目录中的所有文件。
| wc -l: 计算find命令输出的行数,即文件数量。

查看当前目录文件大小

ls -hl
# 
du -h --max-depth=1

ls -l                    # 以长格式显示当前目录中的文件和目录
ls -a                    # 显示当前目录中的所有文件和目录,包括隐藏文件
ls -lh                   # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t                    # 按照修改时间排序显示当前目录中的文件和目录
ls -R                    # 递归显示当前目录中的所有文件和子目录
ls -l /etc/passwd        # 显示/etc/passwd文件的详细信息

修改文件(夹)所有者及所属组

# 修改用户组
chgrp -R groupname/groupID file/directories
# 修改用户
chown -R username/userID file/directories


chown -R username:groupname file/folider

docker容器内文件拷贝到本地

docker cp 容器id:文件 本地目录

查看进程

ps aux 或者 ps a
指定关键字查找
ps a | grep python # 查找含有python的所有进程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ywfwyht

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值