Linux 文件与目录管理

增删改查、查找、打包压缩,以及软链接与硬链接的区别。

Beginner
Key Points日常就是 ls/cd/cp/mv/rm/mkdir;找文件用 find,找内容用 grep,打包用 tar,链接优先用软链接。

基本操作

Bash
ls -lah                  # 详细 + 人类可读大小 + 隐藏文件
cd /var/log && cd -
mkdir -p /opt/app/{bin,conf,logs}
cp -a src/ dst/          # 保留属性递归复制
mv old.txt new.txt       # 重命名;跨目录即移动
rm -rf /tmp/build        # 慎用:删了不进回收站
touch app.log

查看文件

Bash
cat /etc/hosts
less /var/log/syslog        # 分页,/ 搜索,q 退出
head -20 access.log
tail -f -n 100 app.log      # 跟踪日志
wc -l access.log

查找

Bash
find /var/log -name "*.log" -mtime -1
find . -type f -size +100M
find . -name "*.tmp" -delete
grep -rn "DB_HOST" /opt/app/conf
CommandSearchesSpeed
findFile names, metadataSlower, always accurate
locatePrebuilt indexInstant, may be stale
grep -rFile contentsDepends on file count
rgContents, respects .gitignoreMuch faster

打包压缩

Bash
tar -czf app.tar.gz app/            # 打包并 gzip
tar -xzf app.tar.gz -C /opt/        # 解包到指定目录
tar -tzf app.tar.gz | head          # 先看内容再解
zip -r app.zip app/
unzip app.zip -d /opt/

软链接与硬链接

Soft link (ln -s)Hard link (ln)
Points toA pathThe same inode
Survives target deletionNo, becomes danglingYes, data stays
Across filesystemsYesNo
DirectoriesYesNo
Bash
ln -s /opt/app/releases/1.2.0 /opt/app/current
ls -l /opt/app/current
If $DIR is empty, rm -rf $DIR/ becomes rm -rf /. In scripts always write rm -rf "${DIR:?}/" so an empty variable aborts.

Friends & Partners