学习中心/工程实践/Linux/Linux 2:文件、链接、打包
· Linux · 2 · 文件
Linux 2:文件、链接、打包
看、备份、find、tar、rsync。名字不是文件。rm 前先 ls。

先看内容,再复制,删是最后一步
没有回收站。这一块走完,你该能看、备份、找、打包、同步,并且在 rm 之前知道自己在删什么。名字只是指向 inode 的标签,不是文件本身。
- 看less / grep
- 备份cp / rsync
- 打包tar
- 删rm -i
1. 看
- 看这是文本、二进制,还是链接
file /etc/hosts - 看一页一页。q 退出,/ 搜索
less /etc/hosts - 看前 20 行。tail -n 20 是末尾
head -n 20 /etc/hosts - 看多少行。长文件用 less,别用 cat
wc -l /etc/hosts
2. 建、复制、改名
- 建-p:中间目录没有就一并建
mkdir -p ~/work/notes - 复制-a 尽量保住权限和时间。改之前先留一份
cp -a notes.txt notes.bak - 改名mv 既是改名也是挪位置。同盘几乎是改目录项,跨盘才是复制再删
mv notes.txt archive/notes.txt
3. 删之前先确认路径
- 看确认这就是你要删的那个
ls -l notes.bak - 删删前问一句。没有回收站
rm -i notes.bak - 删只删空目录。非空用 rm -r,先 ls 再删
rmdir empty-dir
rm -rf / 这类不要敲,也不要复制来路不明的。通配先 ls。Tab 补全到完整名字再删。
4. 名字不是文件
- 看第一列 inode。两个名字同一个 inode,是硬链接
ls -li notes.bak - 建软链接。指向一个路径,目标可以不在同一个文件系统
ln -s /etc/hosts ~/hosts-link - 看最终落到哪。断掉的链接 ls 会标红或打问号
readlink -f ~/hosts-link
硬链接是同一个文件的第二个名字。软链接是路标。删软链接只删路标。删硬链接只少一个名字,inode 上还有名字就不会真删。
5. 找
- 找只在 ~/work 下按名字找。不要一上来 find /
find ~/work -name "*.txt" - 找一天内改过的
find ~/work -mtime -1 - 找按内容搜。大目录会慢,范围收小
grep -R --line-number "TODO" ~/work
find 是现场走目录。locate 靠数据库,快,但刚建的文件可能还没有。权限不够的目录,find 会报 Permission denied,那是正常的。
6. 打包
- 打包c 建,z gzip,f 文件名。-C 先进入再打包,包里路径更干净
tar -czf notes.tar.gz -C ~/work notes - 看先看里面有什么,再解
tar -tzf notes.tar.gz - 解解到指定目录。不要在 / 下解来路不明的包
tar -xzf notes.tar.gz -C /tmp
7. 同步到别处
- 同步先空跑。末尾的 / 表示目录里的内容。看懂再去掉 --dry-run
rsync -a --dry-run ~/work/ /tmp/work-bak/ - 同步-a 归档模式:权限、时间、链接尽量保住
rsync -a ~/work/ /tmp/work-bak/
scp 能拷单个文件。目录、增量、排除,用 rsync。远程拷要等 SSH 那一篇。
8. 改文件:nano 应急
- 改Ctrl+O 存,Ctrl+X 退出。机器上只有这个时够用
nano ~/work/notes/todo.txt
下一篇起是 Vim。系统文件用 sudo 编辑之前,先 cp 一份。
这块过关:改之前有备份,找得到文件,打包前先 tar -t,rm 前先 ls。下一篇 Vim,先能进出。