本文档风哥主要介绍Linux mkdir命令的使用方法,包括创建单级目录、多级目录、权限指定等内容,参考Red Hat Enterprise Linux 10官方文档,适合运维人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn
参考Red Hat Enterprise Linux 10官方文档中的System administration章节 更多学习教程公众号风哥教程itpux_com
Part01-基础概念与理论知识
1.1 mkdir命令基本概念
mkdir(make directory)命令用于创建新目录,是Linux系统中最基本的文件管理命令之一。 学习交流加群风哥微信: itpux-com
- 创建目录:创建一个或多个新目录
- 多级目录:使用-p选项创建嵌套目录
- 权限设置:使用-m选项指定目录权限
- 批量创建:一次创建多个目录
1.2 目录结构基础
1. 目录层次结构
/ # 根目录
├── bin/ # 基本命令
├── boot/ # 启动文件
├── dev/ # 设备文件
├── etc/ # 配置文件
├── home/ # 用户家目录
├── lib/ # 共享库
├── media/ # 可移动介质
├── mnt/ # 临时挂载点
├── opt/ # 可选软件包
├── proc/ # 进程信息
├── root/ # root用户家目录
├── run/ # 运行时数据
├── sbin/ # 系统命令
├── srv/ # 服务数据
├── sys/ # 系统文件
├── tmp/ # 临时文件
├── usr/ # 用户程序
└── var/ # 可变数据
2. 目录命名规则
– 区分大小写
– 不能包含/字符
– 避免使用特殊字符
– 建议使用小写字母和数字
3. 路径表示
绝对路径:从根目录开始的完整路径
相对路径:相对于当前目录的路径
1.3 mkdir命令选项
mkdir命令支持的选项:
- -p:创建多级目录,如果父目录不存在则创建
- -m:设置目录权限(类似chmod)
- -v:显示创建过程
- -Z:设置SELinux安全上下文
- –help:显示帮助信息
- –version:显示版本信息
Part02-生产环境规划与建议
2.1 目录规划原则
1. 遵循FHS标准
/opt/applications # 第三方应用
/var/log/app # 应用日志
/var/lib/app # 应用数据
/etc/app # 应用配置
2. 命名规范
– 使用小写字母
– 使用下划线或连字符分隔
– 名称具有描述性
– 避免空格和特殊字符
3. 目录结构示例
/opt/webapp/
├── bin/ # 可执行文件
├── conf/ # 配置文件
├── data/ # 数据文件
├── logs/ # 日志文件
├── temp/ # 临时文件
└── backup/ # 备份文件
4. 权限规划
– 配置目录:755或750
– 数据目录:750或700
– 日志目录:755或750
– 临时目录:1777
2.2 权限设置策略
目录权限设置策略: from LinuxDBA视频:www.itpux.com
- 系统目录:755(rwxr-xr-x)
- 用户目录:750(rwxr-x—)或700(rwx——)
- 共享目录:775(rwxrwxr-x)
- 临时目录:1777(rwxrwxrwt)
- 机密目录:700(rwx——)
2.3 最佳实践建议
使用mkdir命令的最佳实践: 学习交流加群风哥QQ113257174
- 使用-p选项:避免父目录不存在的错误
- 设置权限:创建时直接设置权限,避免后续修改
- 验证创建:创建后验证目录是否存在
- 错误处理:在脚本中处理创建失败的情况
- 日志记录:记录目录创建操作
Part03-生产环境项目实施方案
3.1 mkdir基础用法
# 1. 创建单个目录
# mkdir testdir
# ls -ld testdir
drwxr-xr-x. 2 root root 6 Apr 2 16:00 testdir
# 2. 创建多个目录
# mkdir dir1 dir2 dir3
# ls -ld dir*
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir1
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir2
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir3
# 3. 创建多级目录
# mkdir -p /tmp/a/b/c/d/e
# ls -R /tmp/a
/tmp/a:
b
/tmp/a/b:
c
/tmp/a/b/c:
d
/tmp/a/b/c/d:
e
/tmp/a/b/c/d/e:
# 4. 创建目录并设置权限
# mkdir -m 777 public_dir
# ls -ld public_dir
drwxrwxrwx. 2 root root 6 Apr 2 16:00 public_dir
# mkdir -m 700 private_dir
# ls -ld private_dir
drwx——. 2 root root 6 Apr 2 16:00 private_dir
# mkdir -m 750 group_dir
# ls -ld group_dir
drwxr-x—. 2 root root 6 Apr 2 16:00 group_dir
# 5. 显示创建过程
# mkdir -v testdir1 testdir2
mkdir: created directory ‘testdir1’
mkdir: created directory ‘testdir2’
# mkdir -pv /tmp/test/a/b/c
mkdir: created directory ‘/tmp/test’
mkdir: created directory ‘/tmp/test/a’
mkdir: created directory ‘/tmp/test/a/b’
mkdir: created directory ‘/tmp/test/a/b/c’
# 6. 使用大括号扩展创建多个目录
# mkdir {dir1,dir2,dir3}
# ls -ld dir*
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir1
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir2
drwxr-xr-x. 2 root root 6 Apr 2 16:00 dir3
# mkdir test_{01..05}
# ls -ld test_*
drwxr-xr-x. 2 root root 6 Apr 2 16:00 test_01
drwxr-xr-x. 2 root root 6 Apr 2 16:00 test_02
drwxr-xr-x. 2 root root 6 Apr 2 16:00 test_03
drwxr-xr-x. 2 root root 6 Apr 2 16:00 test_04
drwxr-xr-x. 2 root root 6 Apr 2 16:00 test_05
# mkdir {a,b,c}/{1,2,3}
# ls -R {a,b,c}
a:
1 2 3
a/1:
a/2:
a/3:
b:
1 2 3
b/1:
b/2:
b/3:
c:
1 2 3
c/1:
c/2:
c/3:
3.2 mkdir高级用法
# 1. 创建目录并设置SELinux上下文
# mkdir -Z unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/newdir
# ls -ldZ /var/www/html/newdir
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 2 16:00 /var/www/html/newdir
# 2. 创建目录并设置所有者和组
# mkdir /data/project
# chown apache:apache /data/project
# ls -ld /data/project
drwxr-xr-x. 2 apache apache 6 Apr 2 16:00 /data/project
# 或使用install命令一次性完成
# install -d -o apache -g apache -m 750 /data/project2
# ls -ld /data/project2
drwxr-x—. 2 apache apache 6 Apr 2 16:00 /data/project2
# 3. 创建临时目录
# mkdir -m 1777 /tmp/mytemp
# ls -ld /tmp/mytemp
drwxrwxrwt. 2 root root 6 Apr 2 16:00 /tmp/mytemp
# 4. 创建目录并验证
# mkdir /tmp/testdir && echo “目录创建成功” || echo “目录创建失败”
目录创建成功
# 5. 创建目录并立即进入
# mkdir /tmp/newdir && cd /tmp/newdir
# pwd
/tmp/newdir
# 6. 创建目录结构
# mkdir -p /opt/app/{bin,conf,data,logs,temp,backup}
# ls /opt/app/
backup bin conf data logs temp
# 7. 创建日期目录
# mkdir $(date +%Y%m%d)
# ls -ld 20260402
drwxr-xr-x. 2 root root 6 Apr 2 16:00 20260402
# mkdir backup_$(date +%Y%m%d_%H%M%S)
# ls -ld backup_*
drwxr-xr-x. 2 root root 6 Apr 2 16:00 backup_20260402_160000
# 8. 创建用户目录结构
# mkdir -p /home/user/{Documents,Downloads,Music,Pictures,Videos}
# ls /home/user/
Documents Downloads Music Pictures Videos
3.3 实用案例
# 案例1:创建项目目录结构
# cat > /fgedu/shell/create_project.sh << 'EOF'
#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
PROJECT_NAME=$1
PROJECT_ROOT="/opt/projects"
if [ -z "$PROJECT_NAME" ]; then
echo "用法: $0 <项目名称>”
exit 1
fi
PROJECT_DIR=”$PROJECT_ROOT/$PROJECT_NAME”
echo “创建项目目录: $PROJECT_DIR”
mkdir -pv “$PROJECT_DIR”/{bin,conf,data,logs,temp,backup,src,docs}
# 设置权限
chmod 755 “$PROJECT_DIR”
chmod 750 “$PROJECT_DIR”/{conf,data,backup}
chmod 755 “$PROJECT_DIR”/{bin,logs,temp,src,docs}
# 创建README文件
cat > “$PROJECT_DIR/README.md” << README
# $PROJECT_NAME
项目创建时间: $(date)
## 目录结构
- bin/ - 可执行文件
- conf/ - 配置文件
- data/ - 数据文件
- logs/ - 日志文件
- temp/ - 临时文件
- backup/ - 备份文件
- src/ - 源代码
- docs/ - 文档
README
echo "项目目录创建完成!"
tree "$PROJECT_DIR" 2>/dev/null || ls -R “$PROJECT_DIR”
EOF
# chmod +x /fgedu/shell/create_project.sh
# create_project.sh webapp
创建项目目录: /opt/projects/webapp
mkdir: created directory ‘/opt/projects/webapp’
mkdir: created directory ‘/opt/projects/webapp/bin’
mkdir: created directory ‘/opt/projects/webapp/conf’
mkdir: created directory ‘/opt/projects/webapp/data’
mkdir: created directory ‘/opt/projects/webapp/logs’
mkdir: created directory ‘/opt/projects/webapp/temp’
mkdir: created directory ‘/opt/projects/webapp/backup’
mkdir: created directory ‘/opt/projects/webapp/src’
mkdir: created directory ‘/opt/projects/webapp/docs’
项目目录创建完成!
/opt/projects/webapp:
backup bin conf data docs logs README.md src temp
/opt/projects/webapp/backup:
/opt/projects/webapp/bin:
/opt/projects/webapp/conf:
/opt/projects/webapp/data:
/opt/projects/webapp/docs:
/opt/projects/webapp/logs:
/opt/projects/webapp/src:
/opt/projects/webapp/temp:
# 案例2:创建备份目录结构
# cat > /fgedu/shell/create_backup_dirs.sh << 'EOF'
#!/bin/bash
BACKUP_ROOT="/backup"
DATE=$(date +%Y%m%d)
# 创建年月目录结构
mkdir -pv "$BACKUP_ROOT"/{$DATE,daily,weekly,monthly}/{full,incremental}
# 创建应用备份目录
mkdir -pv "$BACKUP_ROOT"/{mysql,nginx,app}
# 设置权限
chmod 750 "$BACKUP_ROOT"
chmod 750 "$BACKUP_ROOT"/*
echo "备份目录结构创建完成!"
ls -R "$BACKUP_ROOT"
EOF
# chmod +x /fgedu/shell/create_backup_dirs.sh
# create_backup_dirs.sh
# 案例3:创建用户目录并设置权限
# cat > /fgedu/shell/create_user_dirs.sh << 'EOF'
#!/bin/bash
USERNAME=$1
if [ -z "$USERNAME" ]; then
echo "用法: $0 <用户名>”
exit 1
fi
HOME_DIR=”/home/$USERNAME”
if [ ! -d “$HOME_DIR” ]; then
echo “用户家目录不存在: $HOME_DIR”
exit 1
fi
# 创建标准目录
mkdir -pv “$HOME_DIR”/{Documents,Downloads,Music,Pictures,Videos,Desktop,Templates,Public}
# 创建应用目录
mkdir -pv “$HOME_DIR”/.local/{bin,share,lib}
mkdir -pv “$HOME_DIR”/.config
mkdir -pv “$HOME_DIR”/.cache
# 设置权限
chown -R $USERNAME:$USERNAME “$HOME_DIR”
chmod 700 “$HOME_DIR”
chmod 755 “$HOME_DIR”/{Documents,Downloads,Music,Pictures,Videos,Desktop,Templates,Public}
echo “用户目录创建完成!”
EOF
# chmod +x /fgedu/shell/create_user_dirs.sh
Part04-生产案例与实战讲解
4.1 案例1:项目目录创建
# 场景:为Web应用创建标准目录结构
# 1. 创建Web应用目录
# cat > /fgedu/shell/setup_webapp.sh << 'EOF'
#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
APP_NAME=${1:-webapp}
APP_ROOT="/opt/$APP_NAME"
echo "========================================="
echo "创建Web应用目录结构"
echo "应用名称: $APP_NAME"
echo "应用根目录: $APP_ROOT"
echo "========================================="
# 创建主目录
mkdir -pv "$APP_ROOT"
# 创建子目录
mkdir -pv "$APP_ROOT"/{bin,conf,data,logs,temp,backup}
mkdir -pv "$APP_ROOT"/conf/{nginx,php,mysql}
mkdir -pv "$APP_ROOT"/data/{uploads,cache,sessions}
mkdir -pv "$APP_ROOT"/logs/{nginx,php,app}
mkdir -pv "$APP_ROOT"/backup/{daily,weekly,monthly}
# 创建版本目录
mkdir -pv "$APP_ROOT"/releases/{current,previous}
mkdir -pv "$APP_ROOT"/shared
# 设置权限
chown -R nginx:nginx "$APP_ROOT"
chmod 755 "$APP_ROOT"
chmod 750 "$APP_ROOT"/{conf,data,backup}
chmod 755 "$APP_ROOT"/{bin,logs,temp}
chmod 770 "$APP_ROOT"/data/{uploads,cache,sessions}
# 创建配置文件
cat > “$APP_ROOT/conf/app.conf” << CONF
# $APP_NAME 配置文件
# 创建时间: $(date)
[global]
app_name = $APP_NAME
app_root = $APP_ROOT
log_level = INFO
[paths]
data_dir = $APP_ROOT/data
log_dir = $APP_ROOT/logs
temp_dir = $APP_ROOT/temp
backup_dir = $APP_ROOT/backup
CONF
# 创建日志文件
touch "$APP_ROOT"/logs/nginx/{access.log,error.log}
touch "$APP_ROOT"/logs/php/{php-fpm.log,php-error.log}
touch "$APP_ROOT"/logs/app/app.log
echo ""
echo "========================================="
echo "目录结构创建完成"
echo "========================================="
tree "$APP_ROOT" 2>/dev/null || find “$APP_ROOT” -type d
EOF
# chmod +x /fgedu/shell/setup_webapp.sh
# setup_webapp.sh myapp
=========================================
创建Web应用目录结构
应用名称: myapp
应用根目录: /opt/myapp
=========================================
mkdir: created directory ‘/opt/myapp’
mkdir: created directory ‘/opt/myapp/bin’
mkdir: created directory ‘/opt/myapp/conf’
mkdir: created directory ‘/opt/myapp/data’
mkdir: created directory ‘/opt/myapp/logs’
mkdir: created directory ‘/opt/myapp/temp’
mkdir: created directory ‘/opt/myapp/backup’
mkdir: created directory ‘/opt/myapp/conf/nginx’
mkdir: created directory ‘/opt/myapp/conf/php’
mkdir: created directory ‘/opt/myapp/conf/mysql’
mkdir: created directory ‘/opt/myapp/data/uploads’
mkdir: created directory ‘/opt/myapp/data/cache’
mkdir: created directory ‘/opt/myapp/data/sessions’
mkdir: created directory ‘/opt/myapp/logs/nginx’
mkdir: created directory ‘/opt/myapp/logs/php’
mkdir: created directory ‘/opt/myapp/logs/app’
mkdir: created directory ‘/opt/myapp/backup/daily’
mkdir: created directory ‘/opt/myapp/backup/weekly’
mkdir: created directory ‘/opt/myapp/backup/monthly’
mkdir: created directory ‘/opt/myapp/releases’
mkdir: created directory ‘/opt/myapp/releases/current’
mkdir: created directory ‘/opt/myapp/releases/previous’
mkdir: created directory ‘/opt/myapp/shared’
=========================================
目录结构创建完成
=========================================
/opt/myapp
/opt/myapp/backup
/opt/myapp/backup/daily
/opt/myapp/backup/weekly
/opt/myapp/backup/monthly
/opt/myapp/bin
/opt/myapp/conf
/opt/myapp/conf/mysql
/opt/myapp/conf/nginx
/opt/myapp/conf/php
/opt/myapp/data
/opt/myapp/data/cache
/opt/myapp/data/sessions
/opt/myapp/data/uploads
/opt/myapp/logs
/opt/myapp/logs/app
/opt/myapp/logs/nginx
/opt/myapp/logs/php
/opt/myapp/releases
/opt/myapp/releases/current
/opt/myapp/releases/previous
/opt/myapp/shared
/opt/myapp/temp
4.2 案例2:批量目录创建
# 场景:为多个项目批量创建目录
# 1. 批量创建项目目录
# cat > /fgedu/shell/batch_create_projects.sh << 'EOF'
#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
PROJECT_ROOT="/opt/projects"
PROJECTS=("webapp" "api" "admin" "mobile" "worker")
echo "批量创建项目目录..."
for PROJECT in "${PROJECTS[@]}"; do
PROJECT_DIR="$PROJECT_ROOT/$PROJECT"
echo "创建项目: $PROJECT"
mkdir -pv "$PROJECT_DIR"/{bin,conf,data,logs,temp,backup}
# 设置权限
chmod 755 "$PROJECT_DIR"
chmod 750 "$PROJECT_DIR"/{conf,data,backup}
# 创建README
echo "# $PROJECT 项目" > “$PROJECT_DIR/README.md”
done
echo “”
echo “所有项目目录创建完成!”
ls -l “$PROJECT_ROOT”
EOF
# chmod +x /fgedu/shell/batch_create_projects.sh
# batch_create_projects.sh
# 2. 创建日期序列目录
# cat > /fgedu/shell/create_date_dirs.sh << 'EOF'
#!/bin/bash
YEAR=${1:-$(date +%Y)}
MONTH=${2:-$(date +%m)}
BASE_DIR="/backup/daily"
echo "创建 $YEAR 年 $MONTH 月的日期目录..."
# 获取月份天数
DAYS=$(cal $MONTH $YEAR | awk 'NF {DAYS = $NF}; END {print DAYS}')
for DAY in $(seq -w 1 $DAYS); do
DATE_DIR="$BASE_DIR/$YEAR/$MONTH/$DAY"
mkdir -pv "$DATE_DIR"
done
echo ""
echo "日期目录创建完成!"
ls -R "$BASE_DIR/$YEAR/$MONTH"
EOF
# chmod +x /fgedu/shell/create_date_dirs.sh
# create_date_dirs.sh 2026 04
# 3. 创建用户组共享目录
# cat > /fgedu/shell/create_shared_dirs.sh << 'EOF'
#!/bin/bash
SHARED_ROOT="/shared"
GROUPS=("dev" "test" "ops" "dba")
echo "创建共享目录..."
for GROUP in "${GROUPS[@]}"; do
GROUP_DIR="$SHARED_ROOT/$GROUP"
echo "创建 $GROUP 组共享目录"
mkdir -pv "$GROUP_DIR"/{documents,scripts,tools,backup}
# 设置组权限
chown -R root:$GROUP "$GROUP_DIR"
chmod 2770 "$GROUP_DIR"
chmod 2770 "$GROUP_DIR"/*
done
echo ""
echo "共享目录创建完成!"
ls -l "$SHARED_ROOT"
EOF
# chmod +x /fgedu/shell/create_shared_dirs.sh
# create_shared_dirs.sh
4.3 案例3:权限控制
# 场景:创建具有不同权限级别的目录
# 1. 创建安全目录结构
# cat > /fgedu/shell/create_secure_dirs.sh << 'EOF'
#!/bin/bash
# from:www.itpux.com.qq113257174.wx:itpux-com
SECURE_ROOT="/secure"
echo "创建安全目录结构..."
# 创建根目录(仅root可访问)
mkdir -pv -m 700 "$SECURE_ROOT"
# 创建机密目录(仅所有者可访问)
mkdir -pv -m 700 "$SECURE_ROOT"/{confidential,private,secret}
# 创建部门目录(仅特定组可访问)
mkdir -pv -m 750 "$SECURE_ROOT"/{finance,hr,legal}
chown root:finance "$SECURE_ROOT/finance"
chown root:hr "$SECURE_ROOT/hr"
chown root:legal "$SECURE_ROOT/legal"
# 创建审计目录(仅root和audit组可访问)
mkdir -pv -m 750 "$SECURE_ROOT/audit"
chown root:audit "$SECURE_ROOT/audit"
# 创建临时工作目录(所有用户可读写)
mkdir -pv -m 1777 "$SECURE_ROOT/temp"
echo ""
echo "安全目录结构创建完成!"
ls -la "$SECURE_ROOT"
EOF
# chmod +x /fgedu/shell/create_secure_dirs.sh
# create_secure_dirs.sh
# 2. 创建具有ACL权限的目录
# cat > /fgedu/shell/create_acl_dirs.sh << 'EOF'
#!/bin/bash
ACL_ROOT="/data/shared"
echo "创建具有ACL权限的目录..."
mkdir -pv "$ACL_ROOT"
# 项目目录
mkdir -pv "$ACL_ROOT"/{project1,project2,project3}
# 设置ACL权限
for PROJECT in project1 project2 project3; do
PROJECT_DIR="$ACL_ROOT/$PROJECT"
# 设置基础权限
chmod 750 "$PROJECT_DIR"
# 设置ACL
setfacl -R -m u:developer:rwx "$PROJECT_DIR"
setfacl -R -m u:tester:rx "$PROJECT_DIR"
setfacl -R -d -m u:developer:rwx "$PROJECT_DIR"
setfacl -R -d -m u:tester:rx "$PROJECT_DIR"
done
echo ""
echo "ACL目录创建完成!"
getfacl "$ACL_ROOT/project1"
EOF
# chmod +x /fgedu/shell/create_acl_dirs.sh
# create_acl_dirs.sh
# 3. 创建具有SELinux上下文的目录
# cat > /fgedu/shell/create_selinux_dirs.sh << 'EOF'
#!/bin/bash
echo "创建具有SELinux上下文的目录..."
# Web内容目录
mkdir -pv -Z unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/app1
# Web可写目录
mkdir -pv -Z unconfined_u:object_r:httpd_sys_rw_content_t:s0 /var/www/html/app1/uploads
# CGI目录
mkdir -pv -Z unconfined_u:object_r:httpd_sys_script_exec_t:s0 /var/www/cgi-bin/app1
# 日志目录
mkdir -pv -Z system_u:object_r:httpd_log_t:s0 /var/log/httpd/app1
# 临时目录
mkdir -pv -Z system_u:object_r:httpd_tmp_t:s0 /tmp/app1
echo ""
echo "SELinux目录创建完成!"
ls -ldZ /var/www/html/app1
EOF
# chmod +x /fgedu/shell/create_selinux_dirs.sh
# create_selinux_dirs.sh
Part05-风哥经验总结与分享
5.1 mkdir命令总结
- 基础用法:mkdir 目录名
- 多级目录:mkdir -p path/to/directory
- 权限设置:mkdir -m 755 directory
- 批量创建:mkdir {dir1,dir2,dir3}
- 显示过程:mkdir -v directory
5.2 常见问题解决
# 问题1: 目录已存在
# mkdir testdir
mkdir: cannot create directory ‘testdir’: File exists
# 解决方法:
mkdir -p testdir # 不报错
# 或检查目录是否存在
[ -d testdir ] || mkdir testdir
# 问题2: 权限不足
# mkdir /root/testdir
mkdir: cannot create directory ‘/root/testdir’: Permission denied
# 解决方法:
sudo mkdir /root/testdir
# 问题3: 父目录不存在
# mkdir /tmp/a/b/c/d
mkdir: cannot create directory ‘/tmp/a/b/c/d’: No such file or directory
# 解决方法:
mkdir -p /tmp/a/b/c/d
# 问题4: 目录名包含空格
# mkdir my directory
mkdir: cannot create directory ‘my’: Permission denied
mkdir: cannot create directory ‘directory’: Permission denied
# 解决方法:
mkdir “my directory”
mkdir my\ directory
# 问题5: 磁盘空间不足
# mkdir testdir
mkdir: cannot create directory ‘testdir’: No space left on device
# 解决方法:
df -h # 检查磁盘空间
# 清理空间或更换目录
5.3 实用技巧
# 1. 创建目录并立即进入
mkcd() {
mkdir -p “$1” && cd “$1”
}
# 2. 创建目录并验证
create_dir() {
local dir=$1
mkdir -p “$dir” && {
echo “目录创建成功: $dir”
ls -ld “$dir”
} || {
echo “目录创建失败: $dir”
return 1
}
}
# 3. 创建目录并设置完整权限
create_secure_dir() {
local dir=$1
local owner=${2:-root}
local group=${3:-root}
local perm=${4:-750}
mkdir -p “$dir”
chown “$owner:$group” “$dir”
chmod “$perm” “$dir”
}
# 4. 创建临时目录并自动清理
create_temp_dir() {
local prefix=${1:-temp}
local tmpdir=$(mktemp -d -t ${prefix}_XXXXXX)
echo “$tmpdir”
# 使用后删除: rm -rf “$tmpdir”
}
# 5. 创建目录并设置粘滞位
mkdir -m 1777 /tmp/shared
# 6. 创建目录并设置SGID
mkdir -m 2770 /shared/project
# 7. 创建目录并设置SUID(通常不推荐)
mkdir -m 4755 /special/dir
# 8. 批量创建并设置不同权限
for dir in public private group; do
case $dir in
public) perm=755 ;;
private) perm=700 ;;
group) perm=750 ;;
esac
mkdir -m $perm “$dir”
done
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
