Appearance
目录操作
查看目录
bash
# 列出目录内容
ls
ls -l # 详细信息
ls -la # 包含隐藏文件
ls -lh # 人性化文件大小
ls -lt # 按时间排序
ls -lR # 递归列出子目录
# 查看当前目录路径
pwd
# 树形显示目录结构
tree
tree -L 2 # 只显示两层
tree -a # 包含隐藏文件
tree -d # 只显示目录切换目录
bash
# 切换到指定目录
cd /etc
cd ~/Documents # 切换到用户家目录下的 Documents
cd .. # 返回上级目录
cd - # 返回上次所在目录
cd ~ # 切换到家目录
cd # 同 cd ~创建目录
bash
# 创建单个目录
mkdir mydir
# 创建多个目录
mkdir dir1 dir2 dir3
# 递归创建多级目录(目录不存在时自动创建父目录)
mkdir -p /tmp/a/b/c
# 创建目录并设置权限
mkdir -m 755 mydir
# 创建目录时显示过程
mkdir -v mydir删除目录
bash
# 删除空目录
rmdir emptydir
# 递归删除空目录
rmdir -p a/b/c
# 删除目录及其全部内容(谨慎使用)
rm -rf mydir
# 安全删除前确认
rm -rfi mydir复制目录
bash
# 递归复制目录
cp -r source_dir/ dest_dir/
# 保留权限和时间戳
cp -rp source_dir/ dest_dir/
# 显示复制过程
cp -rv source_dir/ dest_dir/移动目录
bash
# 移动目录(也用于重命名)
mv old_dir new_dir
mv mydir /tmp/查看目录大小
bash
# 查看目录总大小
du -sh /var/log
# 查看各子目录大小并排序
du -h --max-depth=1 /var | sort -h
# 查看当前目录下各项大小
du -sh *实用操作
遍历目录
bash
#!/bin/bash
# 遍历目录下所有文件
for file in /etc/*; do
if [ -f "$file" ]; then
echo "文件: $file"
elif [ -d "$file" ]; then
echo "目录: $file"
fi
done确保目录存在
bash
#!/bin/bash
ensure_dir() {
local dir="$1"
if [ ! -d "$dir" ]; then
mkdir -p "$dir"
echo "已创建目录: $dir"
fi
}
ensure_dir "/tmp/myapp/logs"
ensure_dir "/tmp/myapp/data"清理旧目录
bash
#!/bin/bash
# 删除 30 天前的备份目录
find /backup -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;目录同步(rsync)
bash
# 同步两个目录(本地)
rsync -av source_dir/ dest_dir/
# 同步到远程服务器
rsync -avz source_dir/ user@host:/remote/path/
# 删除目标中源没有的文件
rsync -av --delete source_dir/ dest_dir/获取目录中文件数量
bash
#!/bin/bash
count_files() {
local dir="${1:-.}"
local count=$(find "$dir" -maxdepth 1 -type f | wc -l)
echo "$dir 中有 $count 个文件"
}
count_files "/etc"
count_files "."