linux 中如何在指定的目录下创建文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 中如何在指定的目录下创建文件相关的知识,希望对你有一定的参考价值。
1、首先输入下方的代码:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
int main(int argc, char *argv[])
FILE *file;
int opt;
char *optstring = "a:b:c:d";
char fname[50] ;
while ((opt = getopt(argc, argv, optstring)) != -1)
2、然后再输入下方的代码:
switch(opt)
case 'a':
strcpy(fname,optarg);
if(mkdir(fname,0777)==-1)
printf("fail to build directionary\\n");
// if((file=fopen(fname,"w+"))==NULL)
// printf("open file error\\n");
break;
return 0;
3、最后这样就完成了,效果如图:
参考技术A 首先执行以下命令来检查你的X-sever工作情况:xinit
[ X-sever 是X-Windows的精简,没有“Windows管理器”。你可以在这里执行你的X-Windows程序,只要在X-terminal窗口输入程序名即可(在程序名前面输入./或者全路径)。但是在这里你不能进行诸如调整窗口的大小和添加光标等功能。〕
你可以在X-terminal窗口中输入exit命令来关闭X-sever,或者按组合键<CTRL><ALT><BkSpace> 来关闭X-Windows服务。(后一种方法会将你的机器挂起-在这种情况下不要重新启动计算机)。
如果你的X-sever无法工作,请看下一个解决方法。
现在,从根开始登录,放入RH5.2光盘:
mount /mnt/cdrom
跳到以下目录:
cd /mnt/cdrom/kde/distribUtion/RedHat/i386/binar/
在将如长路径或者文件名时使用自动完成(按TAB键)是非常有用的。 阅读README文件:
cat readme-2rh51-rpms|more
使用“RedHat包管理器”来安装一些必要的文件包:
rpm -iv packagename
这个包文件是以.rpm作为后缀。首先安装qt库文件,然后是KDE支持文件,再是KDE库文件,最后是KDE基本文件。如果你的安装顺序错误,从属关系检查将会出现错误,安装包被停止安装(rpm将会发布一个错误信息)。没有关系,重新安装需要的文件包,并持续装下去。在安装好KDE基本文件后,你也许要为KDE安装其他的文件包(应用程序,管理,网络,游戏,图形,多媒体)-他们都不很大,所以你可以确认全部安装。最后确认你已经安装了全部的组件,输入:
rpm -ivh *.rpm
vh操作提供了一些额外的消息。你将会得到“文件包已经安装”的消息,如果还有更多的消息你可以滚动浏览,你可以使用组合键<Shift><pgup>来上翻。如果你不喜欢这种行命令形式的rpm包管理器,你可以使用GUI前台来安装相同的包,称之为glint(仅RH5.2有效)。在X-Windows终端输入“glint”即可。
现在,在你的系统中KDE已经成为你的默认X-Windows管理器。在用户目录中将会建立一个.XcLients文件:
pico .Xclients
这个文件里只包含一行内容:
/opt/kde/bin/startkde
输入此行然后保存文件(调整此行内容是必需的,以保证startkde文件的正确定位)。现在,是此文件对所有用户有效(可以执行)。
chmod a+x .Xclients
若许可被改变请检查:
ls -l .Xclients
[ 以一个点为开始的文件将不会被一般的Ls命令显示,就如Dos下的隐含文件,你必须使用他的名字或者ls -a ]
如果你生成的文件是根文件而不是用户文件,那么为正确的用户改变文件的拥有者和文件组:
chown user_name .Xclients
chgrp user_name .Xclients
现在,输入startx将会启动以KDE作为窗口管理器的X-sever。
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。 参考技术B 我用的Macvim(文本编辑器),创建方法如下
mvim ~/指定目录/test.c(这个就是你的文件了,我一般创建c语言文件,所以就.C,你想创建什么文件就用什么后缀)
希望我的回答可以帮到你。 参考技术C cd 到指定目录
touch filename 创建文件
如果需要 root 权限,那么就 sudo touch filename 创建文件 参考技术D 只有有权限直接touch就可以了本回答被提问者和网友采纳
[Linux常用命令磁盘操作]
Linux
1.常用命令
# Linux中最顶级目录是根目录:/
# ~ :在linux当中指的是当前用户的家目录([用户名@主机名 当前所在的目录])
1.touch 文件名 # 创建文件(默认创建在当前用户文件夹下)
touch /路径 文件名 # 指定文件夹下创建文件
2.ls # 查看文件夹(默认查看当前用户文件夹所有文件)
ls /文件名 # 查看指定文件夹下文件
ls / # 查看/(根目录)下所有内容
ls -l # 查看文件详细信息(ls -l 等价于 ll)
3.mkdir # 创建文件夹(默认创建在当前用户文件夹下)
mkdir /路径名/文件名 # 指定路径下创建文件夹
mkdir -p -v /文件名/文件名 # -p参数 递归创建文件夹 -v参数 显示递归创建过程
4.cd # 绝对路径的方式切换路径(根目录开始) 切换目录默认为家目录
cd . # 在任何目录下都代表当前目录(顶级除外)
cd .. # 在任何目录下都代表上一级目录(顶级除外)
cd /路径名 # 切换到指定路径下
5.pwd # 查看当前路径 pwd命令查看的所有路径都是从根目录(/)开始的
6.hostnamectl set-hostname 主机名 # 修改主机名(默认localhost 重新进入系统生效)
7.exit # 登出
8.mv /源路径 /移动后的路径 # 移动文件及文件夹
9.cp [参数] /源路径 /移动后路径 # 复制文件
cp -r 目录名 / # 复制目录 -r参数 递归复制
10.rm # 删除文件
rm -r 目录名 # 删除目录 -r参数 递归删除
rm -r -f 目录名 # -f参数 免去删除二次确认
11.echo "打印的内容" # 打印(类似于print)
12.printenv # 打印出当前系统中所有变量
13. > # 写入内容到文件 覆盖重定向(类似于文件w覆盖写模式)
>> # 写入内容到文件 追加重定向(类似于文件a追加写模式)
14.cat 文件名 # 查看文件内容
15.\'.\'开头文件 # 隐藏文件
ls -a # -a参数 查看隐藏文件
ls -h 文件名 # -h参数 格式化文件大小便于查看(必须配合-l参数使用)
16.reboot # 重启系统
17.shutdown -h now # 立即关机
shutdown -h 时间 # 指定时间后关机
2.磁盘操作
MBR分区
MBR分区
1.最多⽀持四个主分区
2.系统只能安装在主分区
3.扩展分区要占⼀个主分区
4.MBR 最⼤只⽀持 2TB,但拥有最好的兼容性
fdisk工具:
适⽤于磁盘⼩于2TB的磁盘,分区类型MBR,主分区4或主分区3+扩展分区(逻辑分区+…),分区后需要保存后才能⽣效
lsblk /dev/磁盘名 # 查看指定磁盘设备详情
fdisk /dev/磁盘名 # 进入操作当前磁盘(输入m查看所有命令)
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
d delete a partition #删除分区 保存退出要执⾏partprobe刷新分区表
l list known partition types #显示分区类型
m print this menu #显示帮助菜单
n add a new partition #新建分区
o create a new empty DOS partition table #创建新的空⽩分区表
p print the partition table #显示分区表的信息
q quit without saving changes #不保存退出
s create a new empty Sun disklabel #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units #修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
优先掌握
fdisk创建分区
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
fdisk创建分区
fdisk /dev/sdb
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
Device does not contain a recognized partition table
使⽤磁盘标识符 0x12c57921 创建新的 DOS 磁盘标签。
命令(输⼊ m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使⽤默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,⼤⼩设为 1 GiB
命令(输⼊ m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理):512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输⼊ m 获取帮助): w # 保存
[root@chenyang ~]# lsblk /dev/sdb # 查看分区信息
磁盘分区的格式化及挂载
mkfs.xfs : 性能强,功能完善
mkfs.ext : 性能稍弱
mkfs.btrfs : 性能最强 新出不久
\'\'\'
磁盘必须格式化制作⽂件系统,然后挂载才能使⽤
针对⼀块硬盘/dev/sdb
可以不分区,直接格式化制作⽂件系统
也可以基于mbr或者gpt分区⽅式分区完毕后,针对某⼀个分区⽐如/dev/sdb1制作⽂件系统
\'\'\'
# 1.创建分区并保存
[root@egon ~]# fdisk /dev/sdb
...
命令(输⼊ m 获取帮助): w # 保存
# 2.格式化文件系统
[root@egon ~]# mkfs.xfs /dev/sdb # /dev/sdb整体就是⼀个分区
# 3.挂载分区到文件夹上
[root@egon ~]# mount /dev/sdb1 /opt/
命令 分区路径 挂载路径
# 4.查看挂载详情
[root@python mnt]# df -h
# 5.卸载
umount /dev/sdb1 # 或者umount /opt
(umount -l /dev/sdb1 # 或者umount -l /opt 强制卸载)
# 错误处理
[root@python mnt]# umount /mnt
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
解决:
当前所在目录为挂载目录,切换一个目录即可。
- 创建文件(touch)
[root@localhost ~]# # 在Linux系统中创建test.txt
[root@localhost ~]# touch test.txt
- 创建文件夹(mkdir)
[root@localhost ~]# # 创建一个文件夹
[root@localhost ~]# mkdir /root/python
[root@localhost ~]# ls /root/
anaconda-ks.cfg python test.txt
[root@localhost ~]# mkdir /root/python1
[root@localhost ~]# ls /root/
anaconda-ks.cfg python python1 test.txt
[root@localhost ~]# cd /root/python
[root@localhost python]# pwd
/root/python
# 参数:
-p : 递归创建目录
[root@localhost python]# mkdir -p /aa/bb/cc
[root@localhost python]# cd /aa/bb/cc
[root@localhost cc]# pwd
/aa/bb/cc
-v : 显示创建的过程
[root@localhost cc]# mkdir -p -v /aaa/bbb/ccc
mkdir: 已创建目录 "/aaa"
mkdir: 已创建目录 "/aaa/bbb"
mkdir: 已创建目录 "/aaa/bbb/ccc"
- 查看文件夹下面的文件(ls)
# 查看文件需要跟对应的路径# Linux中最顶级目录是根目录:/[root@localhost ~]# # 根目录(最顶级目录):/[root@localhost ~]# # 根目录下有哪些内容[root@localhost ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var# 查看文件的详细信息[root@localhost ~]# ls -l总用量 4-rw-------. 1 root root 1766 6月 10 17:15 anaconda-ks.cfgdrwxr-xr-x. 2 root root 6 6月 11 15:19 pythondrwxr-xr-x. 2 root root 6 6月 11 15:20 python1[root@localhost ~]# ll总用量 4-rw-------. 1 root root 1766 6月 10 17:15 anaconda-ks.cfgdrwxr-xr-x. 2 root root 6 6月 11 15:19 pythondrwxr-xr-x. 2 root root 6 6月 11 15:20 python1
- 查看当前所在路径(pwd)
# 查看当前所在路径:pwd# pwd命令查看的所有路径都是从根目录(/)开始的[root@localhost ~]# pwd/root
- 切换目录(cd)
# 切换目录:cd # 以绝对路径的方式切换路径(从根目录开始)[root@localhost ~]# cd /etc[root@localhost etc]# pwd/etc# 以相对路劲方式切换目录# . 和 .. # . : 在任何目录下都代表当前目录[root@localhost etc]# cd .[root@localhost etc]# pwd/etc# .. : 在任何目录下都代表上一级目录(顶级目录除外)[root@localhost /]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# pwd/etc/sysconfig/network-scripts[root@localhost network-scripts]# cd ..[root@localhost sysconfig]# pwd/etc/sysconfig# cd命令切换的默认目录为家目录(~ :在linux当中指的是当前用户的家目录)[root@localhost ~]# [用户名@主机名 当前所在的目录]## 修改主机名(重新进入系统才会生效)[root@localhost ~]# hostnamectl set-hostname python# 退出登录[test@python ~]$ exit登出
- 移动文件(mv)
# 移动文件:mv# mv 源路径 移动后的路径[root@localhost ~]# mv /root/test.txt /[root@localhost ~]# lsanaconda-ks.cfg python python1[root@localhost ~]# ls /a aa aaa bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test.txt
- 复制文件(cp)
# cp [参数] 源路径 移动后的路径# 复制文件[root@localhost ~]# cp anaconda-ks.cfg /# 递归复制参数-r : 递归复制(常用于复制目录)[root@localhost ~]# cp -r python /
- 删除文件(rm)
# 删除文件的命令:rm[root@localhost ~]# lsanaconda-ks.cfg python python1[root@localhost ~]# rm anaconda-ks.cfg rm:是否删除普通文件 "anaconda-ks.cfg"?n[root@localhost ~]# lsanaconda-ks.cfg python python1[root@localhost ~]# rm anaconda-ks.cfg rm:是否删除普通文件 "anaconda-ks.cfg"?y[root@localhost ~]# lspython python1# 删除目录(-r : 递归删除文件)[root@localhost ~]# lspython python1[root@localhost ~]# rm python1rm: 无法删除"python1": 是一个目录[root@localhost ~]# rm -r python1rm:是否删除目录 "python1"?y[root@localhost ~]# lspython# -f : 免去删除提示[root@localhost ~]# lspython[root@localhost ~]# rm -r -f python/[root@localhost ~]# ls
- 打印命令(echo)
echo "打印的内容"
- 打印出当前系统中所有的变量
[root@localhost ~]# printenv
- 重定向符号(>和>>)
# > 和 >> # > : 覆盖重定向(先删除文件内容,后写入内容到文件)[root@localhost ~]# echo "Hello China" > test.txt# >> : 追加重定向(原来的内容不动,后来的内容从底部插入)[root@localhost ~]# echo "Hello World" >> test.txt
- 查看文件内容
[root@localhost ~]# cat test.txt Hello World
- 隐藏文件(.文件名)
# 文件名以.开头的就是隐藏文件-a : 查看隐藏文件[root@localhost ~]# ls -a. .. .bash_logout .bash_profile-l : 查看文件详细信息[root@localhost ~]# ls -l总用量 4-rw-r--r--. 1 root root 24 6月 11 16:26 test.txt 文件权限 所属用户 所属组 文件的大小 创建时间 文件名称 [root@localhost ~]# # ls -l 等价于 ll[root@localhost ~]# ll总用量 4-rw-r--r--. 1 root root 24 6月 11 16:26 test.txt[root@localhost ~]# ls -l总用量 4-rw-r--r--. 1 root root 24 6月 11 16:26 test.txt-h : 以方便查看方式查看文件大小(必须配合-l参数)reboot : 重启系统shutdown -h now : 立即关机shutdown -h 2 :
磁盘
磁盘 -> 分区 -> /lsblk 磁盘lsblk /dev/sdb 查看特定磁盘# 从分区到使用1、格式化文件系统2、挂载到对应目录(mount)
- 磁盘分区的格式化及挂载
mkfs.xfs : 性能强,功能完善mkfs.ext : 性能稍弱mkfs.btrfs : 性能最强# 格式化文件系统[root@python dev]# mkfs.xfs /dev/sdb1 (格式化分区后的盘时要重命名)# 挂载分区到文件夹上[root@python dev]# mount /dev/sdb1 /mnt/ 命令 分区路径 挂载路径# 查看挂载详情[root@python mnt]# df# 错误处理[root@python mnt]# umount /mnt umount: /mnt:目标忙。 (有些情况下通过 lsof(8) 或 fuser(1) 可以 找到有关使用该设备的进程的有用信息)当前所在目录为挂载目录,切换一个目录即可。
以上是关于linux 中如何在指定的目录下创建文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。
如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。