C里面mkdir可否创建多级子目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C里面mkdir可否创建多级子目录相关的知识,希望对你有一定的参考价值。

linux下使用mkdir可以创建目录,使用mkdir -p参数就可以创建:

mkdir -p /home/orale/duqiang1/duqiang2
如果父目录存在也不会报错。
参考技术A #include
#include
#include
int main(void)

int status;
system("cls");
status = mkdir("book"); /*这是在程序所在当前文件夹下创建book*/
(!status) ? (printf("Directory created\n")) :
(printf("Unable to create directory\n"));
system("pause");
system("dir"); /*显示创建后当前文件夹下的文件信息*/
system("pause");
status = rmdir("book"); /*删除创建的文件夹book*/
(!status) ? (printf("Directory deleted\n")) :
(perror("Unable to delete directory"));
system("pause");
return 0;
本回答被提问者采纳

期中架构之前所有的命令-总结

1.mkdir 创建目录 make directory ====> mk dir ====>mkdir
-p parents 创建多级/层的目录

2.ls 查看目录中的内容 列表 list
-l 显示详细信息(长格式显示)

-d 查看目录本身的信息(不是目录里面的)
[[email protected] ~]# ls -ld /data/
drwxr-xr-x. 2 root root 4096 Dec 23 19:13 /data/
-h 人类可读 human-readable 以人类可以看懂的方式,显示文件/目录的大小
-a 显示隐藏的文件
-F 给不同类型的文件 加上不同的标志 符号
-p 只给目录加上标记,其他类型文件不管。

-r 逆序显示
-t 按照修改时间顺序显示




3.pwd (print working directory) 显示当前的路径(位置) linux这个森林中的 之路灯 告诉你 你在哪里?
[[email protected] etc]# pwd
/etc
[[email protected] etc]#

4.cd 改变目录/位置 (change directory) 改变当前的位置(切换当前工作目录)
cd - 回到上一次目录/位置 回到上一次的工作目录



5.touch 摸,创建文件(修改文件的时间戳)
6.vi/vim 文本编辑工具

打开文件
vi /data/oldboy.txt
变成编辑模式(插入模式)
按i(小写字母i)
编辑文件内容
I am studying oldboy linux.
退出编辑模式
按esc
保存并退出
:wq

:wq
w write 写入
q quit 退出
:q!
!表示强制
:q! 表示强制退出

:set nu #在用vim编辑文件的时候 显示行号
:set nonu #取消显示行号

 

vi 文本文档 记事本
vim notepad++ emeditor

 

G 到文件的结尾(最后一行)
gg 到文件的第一行
o 在当前行下一行插入一个空行,并进入编辑模式

dG 删除光标所在行,到文件的最后一行
D 删除光标所在位置,到行尾
dd 剪切光标所在的行
dnd
p 粘贴
yy 复制当前行

:1,15copy15 复制
:1,15move15 移动

 

7.echo 把你给出的内容显示出来(默认是屏幕)
-n 不输出回车换行符号
-e 开启 转义符号(撬棍系列)

[[email protected]oy34-moban ~]# #echo 显示给出的内容
[[email protected] ~]# echo "I am studying linux."
I am studying linux.

[[email protected] ~]# #echo会把你给出的内容 显示到屏幕上面。
[[email protected] ~]# echo "I am studying linux." >>/data/oldboy.txt
[[email protected] ~]# cat /data/oldboy.txt
I am studying oldboy linux.
I am studying linux.
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# echo "I am studying linux." >>/data/oldboy.txt
[[email protected] ~]# cat /data/oldboy.txt
I am studying oldboy linux.
I am studying linux.
I am studying linux.

 

 

 


7.cat 查看文件的内容

往文件中追加多行内容
cat >>/data/oldboy.txt<<EOF
http://man.linuxde.net/
http://man.linuxde.net/
http://man.linuxde.net/
EOF
-n 显示行号


8.cp 复制---copy (默认无法复制目录)
-a 相当于-pdr
-r 递归复制,复制目录及他的子孙后代
-p 保存文件或目录的属性不变。
-t 把筐挂在脖子上 让cp命令认为第一个就是筐
cp 苹果 苹果 苹果树 苹果树 苹果 筐(目录)
cp -t 筐(目录) 苹果 苹果 苹果树 苹果树 苹果

9.xargs 分组
xargs -n2 <oldboy.txt
-i 让xargs 支持 {} 这种写法。
{}就是前面命令找到的东西。
find /oldboy/ -type f -name "*.log" |xargs -i cp {} /tmp/d

10.mv 搬家,移动文件或目录
11.rm 删除目录或文件 remove
-f 强制删除,没有任何提示
-r (递归)删除目录
12.find 找文件或目录
find /data -type f -name "oldboy.txt"
-maxdepth 1 最大的目录深度
-mindepth 1 最小的目录深度
-type 你要找什么类型的
f 普通文件
d 目录
-name 找什么名字的。
-size 大小 +1M 大于1M的
-mtime +7 修改时间是7天以前的
-iname 查找文件名不区分大小写

-print0 在每个文件的结尾加个标记 一般与 |xargs -0 配合
-inum 根据inode号码查找文件或目录





删除(也可用 查看详细信息 替代)/data目录下面的oldboy.txt文件

find /data -type f -name "oldboy.txt" |xargs rm -f
13.grep linux三剑客-老三 抓,过滤,筛子,找文件的内容

-v 排除,排除找到的内容,排除一行
grep -v "oldboy" test.txt

-A 10 after 显示你要找的行,及他后面的10行
-B 10 before 显示你要找的行,及他前面的10行
-C 10 context 显示你要找的行,及他上前的10行 和下面的10行

-i --ignore-case 不区分大小写


-n 给grep显示出来的行 添加上行号


14.head 头,显示文件的头(前)十行(默认)
-n 数字 取前数字行
-数字
15.tail 尾巴,显示文件的后十行(默认)
-n 数字 取前数字行
-数字

16.alias 设置别名(命令别名)
unalias 取消别名

17.source 让配置文件生效
/etc/profile /etc/bashrc
/etc/sysconfig/i18n

18.which 找命令在哪里。
19.sed linux三剑客-老二 擅长取行
sed -n ‘20,30p‘ ett.txt
-n 取消默认输出 一般和 -n ‘20p‘
-i 修改文件内容
p====print 显示
sed ‘s#oldboy#oldgirl#g‘ filename

20.awk linux三剑客-老大 擅长取列
NR 行号
NF 一行中有多少列
$NF 取最后一列
$0 表示一整行

awk ‘{print $1,$2,$3,$4}‘ filename
显示第1列 第2列 第3列 第4列的内容


-F 指定菜刀(可以多把菜刀)
-F ","
-F "[ ,]"


21.ping 检查道路是否畅通
22.telnet 查看某一个端口是否监听(提供服务)
23.ifconfig 显示ip地址信息
24.netstat/ss 查看连接信息
-lntup 服务器端口监听(提供服务)状态

25.ifup eth0 启动某一块网卡
26.ifdown eth0 关闭某一块网卡

重启某一块网卡 ifdown eth0 && ifup eth0

 


29.su 切换用户 switch user
su - oldboy

30.whoami 我是谁 显示当前用户的名字
31.init 切换运行级别

32.runlevel 查看当前的运行级别

33.chkconfig 管理开机自启动服务(软件)


35.df 显示磁盘的使用情况
-h human-readable 以人类可以看懂的方式,显示磁盘的使用情况
-i 显示inode的统计信息,用了多少,还剩多少。

37.tree 以树形结构显示目录
-L level 显示几层目录
-d 只显示目录
38.hostname 临时修改主机名
39.uname 显示linux信息
-r 显示内核版本
-m 显示系统多少位 32 64

40.less 分页显示文件
按q 退出。

41.more 分页显示文件,只能一直往下看。
42.nl 显示行号,不给空行显示号码
43.tar 打包压缩命令

zcf 创建压缩包 gzip格式的 .gz
tf 查看压缩包内容
xf 解压

z gzip 这种工具
c create 创建压缩包
t list 列表
x extract 解压

44.cut 切割,awk的小弟 阉割版 取某一列
-f 第几列
-f1,6 显示第一列和第六列
-f1-6 显示第1列到第6列

-d 指定一把菜刀,一个字符/字母/符号
cut: the delimiter must be a single character

-c 根据第几个字符来显示内容
-c 6-11 显示第6个字符到第11个字符的内容。

45.tr 替换字符 sed小弟 精简版的sed
cat oldboy.txt
I am oldboy,myqq is 31333741
tr " " "," < oldboy.txt
I,am,oldboy,myqq,is,31333741
46.wc 统计文件行数 单词数

-l(小写字母L) 只统计行数
47.stat 显示文件的信息

48.dumpe2fs 显示文件系统(分区)里面的信息

49.file 查看文件的类型
50.chown 改变文件或目录的属主或属组
-R --recursive 递归修改目录及目录里面的内容

52.lsof 显示系统中所有被打开的文件
list open files
[[email protected] oldboy]# lsof
COMMAND PID USER SIZE/OFF NAME
对应的命令 文件对应的大小 文件名
服务
53.ln 创建链接,默认创建硬链接
-s 创建软连接

54.du 显示文件或目录占的大小
-s 显示统计信息
-h 人类可读
55.date 显示和设置时间 date
+%F 年-月-日 %Y-%m-%d
+%w 周(0-6) 0周日

-d 以指定形式显示日期
-d "-10 day " 10天前
-d "10 day " 10天后
-d "+10 day " 10天后

-s 设置修改时间

 

57.chmod change mode 修改文件或目录的权限
-R 递归的修改权限
27.useradd 添加用户
-u 指定用户的uid 数字
-c 注释 描述信息
-d 指定用户的家目录

-s 指定用户的shell解释器 /bin/bash /sbin/nologin
-M 不创建家目录
28.passwd 设置密码
--stdin 非交互式修改/设置密码
echo "123456" |passwd --stdin oldboy
-e 设置账号的过期日期
58.chage 修改用户的密码信息
-E, --expiredate 设置账号的过期日期
-l(小写字母L) --list 显示用户密码的信息
59.groupadd 添加用户组
-g gid 给新的用户组指定gid
60. usermod 修改用户的信息 /etc/passwd
-u 指定新的uid
-g 指定新的用户组名字
-s 指定新的shell解释器
61.userdel 删除用户及用户组
-r 【危险】连同家目录的所有的东西 一起删除掉

51.id 查看用户的信息 uid gid
56.w 谁登陆了系统 在干啥
01:23:04 up 18:55, 2 users, load average: 0.04, 0.05, 0.05
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root pts/4 192.168.25.1 15:41 1.00s 1.85s 0.02s w
root pts/5 192.168.25.1 17:16 17:49 0.03s 0.03s -bash
[[email protected] ~]# #w 谁登陆了系统 在干啥
62.last 用户的最近登录的情况
63.lastlog 系统里面所有用户的最近一次的登录信息
64.who 显示谁登陆
65.rpm 软件包管理的命令

-q 查询
-a 所有
-qa 在所有软件包中查询
-ql 查询软件包里面的内容

[[email protected] ~]# rpm -qf /usr/bin/rsync
rsync-3.0.6-12.el6.x86_64
[[email protected] ~]# rpm -qf rsync
error: file /root/rsync: No such file or directory
[[email protected] ~]# rpm -qf /etc/ssh/sshd_config
openssh-server-5.3p1-117.el6.x86_64
-qf 绝对路径。查询某一个命令或文件属于哪一个包 查询文件属于哪一个包
-e 删除某一个包
--nodeps 不检查依赖关系

-ivh 安装一个rpm包




66.dd 创建一个块 文件
if input file 输入文件 从哪里读取内容
of output file 输出文件 读取内容后放在哪里
bs block size 每一次读多少内容
count 读取多少次
dd if=/dev/sda of=/tmp/mbr.bin bs=512 count=1
67.fdisk 分区工具 小于2TB mbr分区表
-l 显示分区信息
68.parted gpt分区表 分区工具

69.mkfs 格式化工具 创建文件系统
mkfs -t ext4 ====== mkfs.ext4

70.tune2fs 修改文件系统信息
-c -1 挂载多少次后进行磁盘检查 取消 -1
-i -1 每隔多久进行一次磁盘检查 取消 -1

71.partprobe 通知系统 磁盘分区表的改变 要指定某一块磁盘

34.mount 挂载命令 把苹果(磁盘 设备)挂在树叶(目录 挂载点)
-t 指定文件系统类型 (苹果啥类型)
-t loop ###挂载光盘 挂载一个嘎达(dd)
36.umount 卸载
-lf 强制卸载
72.mkswap 创建swap分区
73.swapon /swapoff 让一个swap分区/文件 生效 加入到系统的swap中
-s 显示系统当前swap分区的使用,用了哪个分区 用了哪个文件作为swap
74. 杀手三人组系列之 kill
精确暗杀
kill 进程的号码(PID) process ID
ps -ef

75. 杀手三人组系列之 killall
完整的命令/进程的名字

76. 杀手三人组系列之 pkill
模糊杀手,根据进程名字


chkconfig 管理
1.脚本
2./etc/init.d/
3.+x
4.脚本至少要有 # chkconfig: 2345 99 99



查询帮助:
1.man 命令
2.命令 --help
3.help 内置命令
4.vim 查询帮助的方法 :help vim命令

http://man.linuxde.net/


重定向:
#重定向 默认显示到屏幕,我让他改了方向 输出到文件中。
>> 追加重定向 #追加重定向 把内容放到文件的结尾,不清空文件内容。

cat >>/data/oldboy.txt <<EOF
I am studying li.
EOF

竖向选择

 

特殊符号:
1、*星号,表示所有文本,字符组成的文件名字
2、|管道,下水道,把前一个命令的结果 通过下水道 传递给后面
一个命令无法满足你。
3. .(点) 表示当前工作目录(当前正在使用的位置)
4. .. 表示当前目录的上一级目录
5. && 并且,前面一个命令执行成功然后执行后面一个命令
你是男生 && 你喜欢女生
ifdown eth0 && ifup eth0
6. ``(反引号) 或这是 $() 引用命令的结果,先执行反引号或$()中的内容(命令)
which mkdir
/bin/mkdir
ls -l /bin/mkdir
ls -l $(which mkdir)
7.{} 花括号(大括号) 生成序列 生成一串连续的文本
echo {a..z}
echo {0..10}

a b c d e

正则表达式:
1.^word 以word开头的行
2.word$ 以word结尾的行
3.|(竖线) 或者 3306|1521


快捷键:
1.ctrl+c 取消当前的操作
2.esc +.(点) 使用上一个命令的最后东西(参数)
3.ctrl+d logout 退出/登出/踢出 当前用户

 



































































































































































































































































































































































以上是关于C里面mkdir可否创建多级子目录的主要内容,如果未能解决你的问题,请参考以下文章

Linux里面mkdir加不加-p的区别是啥?

Php中使用mkdir如何创建多级目录?

fopen创建多级目录下文件的问题

Java 创建多级不存在目录

PHP使用mkdir创建多级目录的方法

linux怎么进入一个多级的目录