ToolkitX
知识库工具箱

文件与目录操作

ls, cd, cp, mv, rm, mkdir 等文件操作命令

20min·入门

01. 查看文件与目录

ls 是你用得最多的命令,就像你在 Finder 里看文件夹一样。但 ls 比图形界面强一百倍:
bash
ls                 # 看看当前目录有啥
ls -l              # 详细列表:谁创建的、多大、啥时候改的
ls -la             # 包括隐藏文件(以 . 开头的那些)
ls -lh             # 文件大小用人类能看懂的单位(1K 而不是 1024)
ls -lt             # 按时间排序,最新改的排最前
ls -lS             # 按文件大小排序,大的在前
ls -R              # 所有子目录里的文件也列出来

02. 目录操作

在目录之间跳来跳去,其实就三个命令:
bash
cd /path/to/dir    # 去那个目录
cd ~               # 回家(家目录)
cd -               # 退回上次待的目录,特别实用
cd ..              # 上一级目录
cd /               # 去根目录

pwd                # 我现在在哪儿?
/home/user/projects

mkdir newdir           # 新建一个文件夹
mkdir -p a/b/c         # 一口气建三层文件夹
mkdir -m 755 newdir    # 建文件夹同时设好权限

03. 文件操作

复制、移动、删除——日常操作三件套。注意 rm 可是真删除,没有回收站:
bash
cp file1 file2         # 复制文件
cp -r dir1 dir2        # 复制整个文件夹
cp -p file1 file2      # 保留权限和时间信息
cp -i file1 file2      # 目标文件存在时先问你

mv file1 file2         # 重命名
mv file1 /path/to/     # 挪到别的目录
mv -i file1 file2      # 覆盖前问一下

rm file                # 删文件
rm -f file             # 强制删,不问
rm -r dir              # 删整个文件夹
rm -rf dir             # 删文件夹,强制,不问——慎用!
rm -- -file            # 文件名以 - 开头时得加 -- 保护一下
rm -rf 没有后悔药。执行前先用 ls 确认一下路径,别手抖把整个系统删了。

04. 文件查看

看文件内容也是家常便饭。不同场景用不同命令:
bash
cat file              # 一口气看完整个文件
head -n 20 file       # 只看前 20 行
tail -n 20 file       # 只看最后 20 行
tail -f file          # 文件有新内容就实时显示,看日志必用
less file             # 分页看,按 q 退出,超大文件也不卡
more file             # 也是分页看,但 less 更好用
wc -l file            # 数数文件有几行
nl file               # 显示行号
tail -f 是运维标配——盯着日志文件,新内容一来就显示,排查问题特别好使。

05. 文件查找

找文件不能靠眼扫,得靠 find。它就像百度搜文件,按名字、大小、时间什么条件都能搜:
bash
find /path -name "*.log"              # 找所有 .log 文件
find . -type f -name "*.py"           # 找当前目录下所有 .py 文件
find . -type d -name "test"           # 找叫 test 的文件夹
find . -size +100M                    # 找大于 100MB 的大文件,清理空间用
find . -mtime -7                      # 找 7 天内改过的文件
find . -perm 755                      # 找权限是 755 的文件
find . -name "*.tmp" -exec rm {} \;   # 找到所有 .tmp 并删掉
find . -empty                         # 找空文件和空文件夹

locate nginx.conf     # locate 靠索引查找,秒出结果
updatedb              # 更新 locate 的索引数据库

知识测验

1/5正确 0

复制整个文件夹要加哪个选项?

下一节

文本处理三剑客

下一节