- 浏览: 190295 次
文章分类
最新评论
-
vencie:
这样配置了还是无效...
【转载】限制用户单点登录ssh -
chenchi:
太感谢了!
【转载】php运用readfile函数实现下载文件权限判断 -
cyl19880415:
哥们!真的感谢了。解决了我一大难题啊!
[转载]QT 自定义 信号 槽 解决 ‘staticMetaObject’ is not a member of -
0x14:
你添加了 "Accept-Encoding" ...
[原创]QT HTTP 通讯 使用方法
转载自 : http://hi.baidu.com/bamboolsu/blog/item/a5e1d0452ca09442500ffe5f.html
从总体上讲 /etc/gnome/defaults.list 保存了全局的打开方式
~/.local/share/applications/mimeapps.list 保存了个人的打开方式
当两着不一致是,优先采用局部的个人设置。
例如,ubuntu8.04下多媒体文件默认是用Totem打开的,如果你想要改成用smplayer(本人比较喜欢用这个)来打开的话,可以按照以下步聚来进行:
1.进入/etc/gnome目录 命令 cd /etc/gnome
2.复制要改变打开方式的那些内容行到mimeapps.list文件 命令 grep “totem” defaults.list >> ~/.local/share/applications/mimeapps.list
3.进入~/.local/share/applications目录 命令 cd ~/.local/share/applications
4.编缉mimeapps.list文件 命令: sudo vim mimeapps.list
5.在vim中执行 命令:%s/totem/smplayer/g
6.然后执行保存命令:wq
7.完成
想要改其它类型的可照此类推,比如我就把音频文件换成了audacious来打开,文本文件用gvim来默认打开。
[leo@localhost /]$ sudo find . -name "defaults.list"
./usr/share/kde-settings/kde-profile/default/share/applications/defaults.list
./usr/share/applications/defaults.list
./usr/local/share/applications/defaults.list
Linux文件关联详解
Linux下的文件关联比较科学,并不是Windows下文件扩展名那么简单,所以你不用在意扩展名是什么
我们知道在Windows 下,双击一个可执行文件,文件管理器会自动运行这个应用程序。而双击一个数据文件时,文件管理器会用与之关联的应用程序打开它。数据文件与应用程序之间的 关联是通过注册表来实现的:文件管理器查询注册表,找到数据文件对应的应用程序,然后运行这个应用程序,并把数据文件的文件名作为命令行参数传给它。
这 种文件关联的方式非常好用,省去了先起动应用程序再打开文件的麻烦。Linux下的桌面环境也有类似的功能,而且实现方式更合理。最近负责开发一个资源管 理器,本来GNOME有一个功能强大的资源管理器Nautilus,只是它过于庞大,不但有超过 10万行的代码,还依赖于libgnome、gnome-vfs和CORBA等,故不适合于嵌入式应用。最终我们决定自己开发一个简化的资源管理器,但又 要尽量兼容现有的应用程序,这要了解相关标准,文件关联方式是其中之一。把这几天学到的知识做个笔记吧,供有兴趣的朋友参考:
首先让我们看 看文件关联要做些什么。
1.数据文件与应用程序的关联。一个应用程序通常只能打开一些特定的数据文 件,比如图片浏览工具可以打开PNG、BMP和JPEG等图片文件。打开一词的意义比较宽泛,这里包括:打开、播放、安装、编辑和打印等等。
2.文件类型信息。资源管理器把数据 文件列出来时,通常会用一个图标来标识这类文件,同时也会加上一个简短的名称,以便用户可以很容易把它与其它类型的文件区分开来。
下面我们 看看linux下是如何实现的。
1.判断文件类型。
文件的数量是无限的,我们只能按文件类型来处理。如何判断一个文件所 属的文件类型呢?可能有人会说,很简单,用扩展名区分就行了。没错,用扩展名可以做到,但这种方法有两个缺陷:一方面它不是很精确,相同扩展名的文件的类 型可能完全不同,比如dat文件,可能是一个视频文件,也可能是一个普通数据文件。另一方面它不是很准确,扩展名可以任何改动,为了某种目的,完全可以把 exe扩展名改为htm扩展名。
而且在Linux下扩展名只是一个可选项,很多文件根本没有扩展名,所以纯粹采用文件扩展名的方式来判断肯定是不行的。为了更好的判断文件类型,在 linux下同时采用两种方式:优先采用magic方式,其次才采用文件扩展名方式。所谓magic方式,就是根据文件内容来判断。绝大多数文件,内部都 有一些特定的标记,这些标记称为magic,比如BMP图片文件以BM两个字符开头,BM就是一个magic。虽然即使采用了双保险机制也有误判的可能, 但概率已经大大降低了。
2.文件类型的表示。
文件类型如何表示呢?我们说JPEG 是图片文件,说txt是文本文件,WML是XML文件。这种分类很直观,但也有几个问题:对JPEG文件来说,称它图片文件太笼统了。有的图片浏览工具虽 然能够打开大部分图片文件,但不一定能打开所有图片文件,它需要更详细的文件类型信息。对txt和WML来说,它们其实都是文本文件,有的编辑器可能以同 样的方式处理它们。为了避免分类太细或者太粗,linux采用了MIME(可以参考相关RFC)规范,它用一种层次型的方式来分类,如:
JPEG文件:image/jpeg
文本文件:text/plain
XML文件:text/xml
这种分类方式就可以粗细兼顾了。
3.文件类型的数据信息。
在linux下,关于文件类型的信息通常放在/usr/share/mime、/usr/local/share/mime和用户目录下,所有应用程序可 以共享这些信息。在该目录下,一般会有以下这些文件:
aliases:文件类型的别名。比如application/pdf 有时也称为application/x-pdf 。
magic:各种文件的内部标识,用于从文件内容来判断文件类型。如BMP图片文件以BM开头。
globs:扩展名与文件类型的对应关系。如*.cpp文件是text/x-c++src类型的。
packages目录:用于安装新文件类型用。
其它子目录及其下的文件:更详细的描述各种文件类型。比如image下的jpeg.xml文件描述了jpeg文件类型。为了方便国际化,这些描述信息有各 种语言版本。
4.图标文件与数据文件的关联。
在资源管理器中,通常用不同的图标来区分不同的文件类型。同时图标也是桌面主题相关的,主题不同,图标的大小和外观也不一样。图标文件通常存放在/usr /share/icons/主题/大小/mimetypes目录下。
文件类型与图标文件的对应关系是通过文件名来实现的。比如,JPEG文件对应的图标文件为gnome-mime-image-jpeg.png。
(这块不是很确定,有待进一步研究)
5.应用程序与数据文件的关联。
应用程序与数据文件的关联是通过.desktop文件来实现的。应用程序要出现在开始菜单中或者桌面上,它要提供一个desktop文件才行。应用程序安 装之后,desktop文件通常安装到/usr/share/applications下。
可以在desktop文件中,指明其可以操作的文件类型。如,软件包安装程序可以操作rpm文件,它的desktop文件(system- install-packages.desktop)内容为:
[Desktop Entry]
Name=Install Packages
GenericName=Install Packages
Comment=Install new packages on the system
MimeType=application/x-rpm;
Exec=/usr/bin/system-install-packages %F
Terminal=false
Type=Application
Icon=system-config-packages.png
Encoding=UTF-8
NoDisplay=true
MimeType项指明它可以操作rpm类型的文件。
----------------------EOF-------------
发表评论
-
【转载】linux 命令行 find+grep 查找 文件内容
2011-12-10 16:51 1148nuihq.com qt nui ni ui kinect p ... -
【原创】打开 ubuntu 的 apport 崩溃检测报告功能
2011-12-09 18:43 2074http://nuihq.com/wordpress/?p=4 ... -
【原创】 NUI Kinect OpenNI Nite 追踪 玩家 骨骼 流程
2011-12-03 19:41 4728http://nuihq.com/wordpress/?p=4 ... -
[转载]QT 自定义 信号 槽 解决 ‘staticMetaObject’ is not a member of
2011-11-29 16:21 7842搬家中,,,,请关注 nuihq.com 今天学习QT的时候 ... -
[转载]解决 Qt / QML 中图像的闪烁 (Avoiding graphics flicker in Qt / QML )
2011-11-28 15:38 3328搬家中。。。请关注 nuihq.com 转载自:http ... -
【转载+原创】SSH 保持连接 (解决Broken pipe)
2011-11-28 13:18 17353搬家中。。。敬请关注 nuihq.com 转载自: ht ... -
[原创]QT HTTP 通讯 使用方法
2011-11-27 16:07 23770//////////////grabthread.h///// ... -
[原创]QT 解析 XML文档
2011-11-27 15:40 5150在编写QT程序的时候我们有时需要进行DOM的解析, 简 ... -
【草稿】修复 GRUB2 启动
2011-11-22 09:02 1086http://qyiyunso.blog.163.com/bl ... -
【转载】设定debian KDE桌面中的GTK程序的主题
2011-11-19 11:41 1608转载自:http://wiki.ubuntu.org.cn/K ... -
[转载+修改]openSUSE安装openNI和出现"InitFromXml failed:Failed to set USB interface"的解决方法
2011-11-12 20:55 3615转载自:groups.google.com/group/ope ... -
[原创]QT中进行debug输出和使用cout cin等的问题
2011-10-29 21:06 13415本文参考了:http://doc.qt.nokia.com/s ... -
[转载]KDE fish文件传输停止问题的原因和解决
2011-10-20 21:16 1179参考文章: http://www.ikde.org/tech/ ... -
【转载】限制用户单点登录ssh
2011-10-07 12:23 1762转载自: http://www.shocr.com/li ... -
【转载】Firefox设置远程DNS解析
2011-10-03 17:20 3864转载自: http://kxboy.com/web-skill ... -
【转载】phpmyadmin 提示 Cannot start session without errors...的解决方法
2011-09-28 09:53 951网上的解决方法很多, 我看了几个人的总结了一下, 无法注明转载 ... -
【转载】Debian(包括Ubuntu等使用deb包的发行版)源的格式
2011-09-26 23:09 1051下边是一个典型的ubuntu中的软件源的条目: deb ... -
[原创]GTK+ 3.0 牛叉新特性~~
2011-09-28 09:56 829新的GTK+ 新加入了很多特性, 最给力的就是新的颜色系统和支 ... -
[转载]Firefox 安装 Flash 播放器插件
2011-10-03 17:20 975转载自: http://www.linuxdiyf ... -
[原创]Linux 各个发行版私有驱动的安装方法
2011-10-03 17:20 819slackware ati: http://www. ...
相关推荐
linux打开文件数
LINUX打开ISO文件
linux下初级的open函数例子!文件直接在unix上执行。
linux打开文件命令使用说明
关于Linux文件系统及文件管理的实验报告
(7)cat …: 打开文件。 (8)copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝。 (9)del …: 删除文件:删除指定文件,不存在时给出出错信息。 (10)...
Linux常用配置文件及常用命令 Linux常用配置文件及常用命令
在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。file.tar.gz file.tgz file.tar.bz2 file.rar file.gz file.zip这些大家都熟悉,是归档...
通过对Linux系统中每个文件目录功能的基本介绍,快速了解Linux的存储方式,更快入门。简洁,精炼,对初学者而言,更加有积极性。
Windows和Linux间有很多文件共享的方式,这里总结了一下。假设你的Host计算机是Windows,Guest是Linux
修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行
Linux中C语言open函数打开或创建文件详细讲解.pdf
主要给大家介绍了关于在linux中利用lsof命令如何查看文件打开情况的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
【Linux系统编程】Linux文件操作代码.c 对应博客:https://blog.csdn.net/dengjin20104042056/article/details/102886623
Linux下如何通过关键字查找文件 查找目录 非常方便
(7) cat …: 打开文件。 (8) copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\...
linux C++ 文本文件创建写入以及读取
利用c语言实现仿Linux的文件操作,包括: format-格式化; exit-安全退出·文件系统,保存信息; mkdir dirname :创建子目录; rmdir dirname :删除子目录. ...open filename :打开文件. close filename :关闭文件.
linux下对文件操作的各种函数介绍。文件的打开、读写、文件指针定位等。
linux最常用的命令 linux命令学习哪些? linux命令应该记住多少就够用了? linux文件操作最常用的命令有哪些? 学习完,linux的文件操作命令这些就够了