关于linux下的复制命令cp
功能说明:复制文件或目录。
语 法:cp [-abdfilpPrRsuvx][-S <备份字尾字符串>][-V <备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录] [目的目录]
补充说明:cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。
参 数:
-a或–archive 此参数的效果和同时指定”-dpR”参数相同。
-b或–backup 删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。
-d或–no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。
-f或–force 强行复制文件或目录,不论目标文件或目录是否已存在。
-i或–interactive 覆盖既有文件之前先询问用户。
-l或–link 对源文件建立硬连接,而非复制文件。
-p或–preserve 保留源文件或目录的属性。
-P或–parents 保留源文件或目录的路径。
-r 递归处理,将指定目录下的文件与子目录一并处理。
-R或–recursive 递归处理,将指定目录下的所有文件与子目录一并处理。
-s或–symbolic-link 对源文件建立符号连接,而非复制文件。
-S<备份字尾字符串>或–suffix=<备份字尾字符串> 用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字尾字符串是符号”~”。
-u或–update 使用这项参数后只会在源文件的更改时间较目标文件更新时或是 名称相互对应的目标文件并不存在,才复制文件。
-v或–verbose 显示指令执行过程。
-V<备份方式>或–version-control=<备份方式> 用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这字符串不仅可用”-S”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字串。
-x或–one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不予复制。
–help 在线帮助。
–sparse=<使用时机> 设置保存稀疏文件的时机。
–version 显示版本信息。
————————-
文件覆盖时不提示overwrite的方法:
\cp -R -f source target
cp命令默认是不会提示overwrite?的,但是cp的-i选项会提示,
而一般Linux的起动文件~/.bashrc中会把cp命名成
alias cp=’cp -i’
这样在Linux下输入cp命令实际上运行的是cp -i
加上一个“\”符号就是让此次的cp命令不使用别名(cp -i)运行。
就不会有overwrite?的提示了,至于保留链接,cp命令没有这样的功能,你可以写一个简单的脚本,cp之前判断一下就可以了。
apache设置不当,造成部分中文编码乱码
Posted on 五月 8th, 2008 in apache、php、mysql | 1 Comment »
中文编码多种多样,UTF-8、GBK等。
当安装GBK代码的页面至apache后发现每次都要在浏览器中手动调节成GB2312或者GBK才能正确显示中文,否则就是乱码!
后发现是apache强制以UTF-8默认显示页面。
修改方法:
修改/etc/httpd/conf/httpd.conf中的AddDefaultCharset UTF-8改成AddDefaultCharset GBK,重新然后执行/usr/sbin/apachectl restart重新启动apache即可解决问题!
hddtemp结合sensors-applet监控硬盘温度
Posted on 五月 6th, 2008 in linux笔记 | 4 Comments »
许多linux发行版都集成了hddtemp,并且默认已经安装上,只要在终端执行 hddtemp /dev/hd*或者sd*,即可显示驱动器的信息和温度。
我的硬盘挂接在第一个ide口的master,所以是hda,
执行hddtemp /dev/hda后得到:
/dev/hda: WDC WD2500JB-OOREAO: 40C
但是这种在终端中执行命令查看的方式很不直观。
所以需要配合sensors-applet来实现直接在菜单条上实时显示和监控。
先前已经安装了sensors-applet所以不再阐述,安装方法:http://www.99ks.com/?p=78
如果系统没有安装hddtemp或者hddtemp版本太低,可以下载最新的版本,下载地址:http://download.savannah.gnu.org/releases/hddtemp/
并且编译安装,(安装方法不再阐述),安装后应该需要重新启动,然后执行hddtemp /dev/hd*或者sd*察看是否有返回信息,如果有则安装成功。
但是我碰到了一些问题,我即安装了hddtemp并且执行命令能得到返回信息,而且sensors-applet也已经安装成功,正确监控了CPU、主板、风扇的工作情况,但是就是没有出现硬盘监控的选项。
后来baidu和google了N多回,发现hddtemp必须工作在daemon模式下开启7634端口才能正确的被sensors-applet所显示。
检测是否在daemon模式的方法是在终端执行telnet localhost 7634,看有否硬盘信息和温度的返回。如果没有则说明未开启,执行hddtemp -d /dev/hda命令,然后再执行telnet localhost 7634看看,此时应该有返回信息了。在hddtemp的参数-d,就是开启daemon模式的。
将hddtemp -d /dev/hda 命令加入到/etc/rc.d/rc.local 文件中,保存并重新启动后,看看sensors-applet的sensors窗卡中有否hddtemp?
如图所示:
如果出现了hddtemp则说明一切ok了。
我解决这个问题的思路是:
原本两个程序都安装并且正确运行了,可hddtemp就是没有在sensors-applet中出现,随后发现需要在daemon模式下,于是执行命令在daemon下运行,可sensors-applet必须重新关闭再打开才有hddtemp选项,说明原先的配置在启动时,要么是没有加载入daemon模式,要么就是daemon模式的hddtemp在applet之后加载了。
所以必须在启动时先载入daemon模式的hddtemp再载入applet,才能解决问题。
我的方法是将命令直接写在启动文件,这个方法可能不是最好,如有更好的方法请告知。
另外还有题外话。技术方面的问题,特别是linux技术方面,在google中寻找的效率要比baidu高许多许多,但前提是英语要过得去,多半难题得在英文网站上找到答案。baidu很难检索到是因为国内linux群体过于弱小,经验积累不足,文档缺乏有关。希望国内linux群体,包括Unix系的BSD等群体能逐渐壮大。
centos安装lm-sensors和applet监控主机温度
Posted on 五月 4th, 2008 in linux笔记 | 12 Comments »
先下载lm_sensors和sensors-applet两个程序。
其中,lm_sensors找到了rpm包文件:lm_sensors-3.0.1-5.fc9.i386.rpm
可以看出是for fc9的rpm包,由于fc和centos都属于redhat系列,所以应该可以安装。
下载页面:http://rpm.pbone.net/index.php3/stat/3/srodzaj/1/search/lm_sensors
其中有许多软件包,可供不同linux发行版选择安装。
rpm包安装很简单,不多阐述,下载后双击即可,安装过程中可能会涉及到依赖问题,逐个安装即可。
安装后,运行sensors,如果出现no sensors found的话,则要运行sensors-detect,如果提示无此命令,则执行/usr/sbin/sensors-detect
一路回车默认安装即可,最后会问你是否覆盖配置文件,选择y或者回车。
我的配置文件是/etc/sysconfig/lm_sensors,但许多人的配置文件会是/etc/modules
随后再运行sensors就能看出cpu电压温度等信息。
接下来安装sensors-applet,此程序是sensors的图形界面。
由于只有deb包,所以centos只能通过tar.gz源程序,需要编译安装。
文件名:sensors-applet-2.2.1.tar.gz
下载页面:http://sensors-applet.sourceforge.net/index.php?content=source
下载后安装方法:
tar xzvf sensors-applet-2.2.1.tar.gz
cd sensors-applet-2.2.1
./inconfigure –prefix /usr
make
make install
安装过程中也会涉及到依赖问题,逐个安装即可。
安装完成后鼠标右键点击菜单兰,选择“添加到面板”,选择“Hardware Sensors Monitor”即可在菜单兰上显示cpu温度。