❶ 路径里的正斜杠和反斜杠一样吗
路径里的正斜杠和反斜杠不一样的,区别有:
1、适用的系统不同:
在windows系统中, 用来表示目录。而在unix系统中,/ 表示目录。
2、web路径使用条件不同:
由于web遵循unix命名,所以在网址(URL)中,/ 表示目录。例如:出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/。
<div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; padding:10px 10px 10px 10px"></div>如果url后面用反斜杠,就不会显示任何背景。
3、代表的路径不同:
出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/ 和 反斜杠 是一样的;如果代表的是网络文件路径,则必须使用 斜杆/ 。“./SRC/”表示,当前目录中的SRC文件夹;“../SRC/”表示,当前目录的上一层目录中SRC文件夹;
❷ linux的命令带的选项,有些是一个杠-,有些是两个杠--,这些有没有什么规律的
一、find 命令格式
1、find命令的一般形式为;
find pathname -options [-print -exec -ok ...]
2、find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
3、find命令选项
-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内, n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
4、使用exec或ok来执行shell命令
使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的
在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime 5 -exec rm { } \;
记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
$ find . -name "*.conf" -mtime 5 -ok rm { } \;
❸ 路径 //什么意思
C程序文件路径用双斜杠//
因为反单斜杠在C/C++/C# 中是转义前导字符,例如 代表换行。为了避免歧义,路径中的必须用//。
1、C程序释义
(C程序相关书籍)
C语言是目前世界上最流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
2、关于C语言中的转义字符
所有的ASCII码都可以使用转义字符来表示,其中包括了常用的打印字符和一些具有特殊功能的非打印字符。
在C语言中,打印字符,如字母、数字、空格等字符,可以直接使用引号包含这些字符即可构成字符或字符串数据。
对于非打印字符,在引号中则必须使用转移字符来进行表示。
3、基本形式
首先转义字符和普通字符数据一样,只能够出现在单引号或者双引号中。并且转义字符都以开头。
转义字符有三种表示方式,分别是
1. 8进制加8进制数字
2. 16进制x加16进制数字
3. 特殊转义字符加有特殊意义的符号
注意:转义字符不存在10进制的书写形式。
4、数字转义
数字转义字符只能使用8进制和16进制。
每个字符的转义数值分别对应了其ASCII码的值。
例如:
字符
转义字符(8进制)
转义字符(16进制)
‘a’ ‘141’ ‘x61’
‘+’ ‘53’ ‘x’
‘0’ ‘60’ ‘x30’
所有的ASCII字符都可以使用这种方式进行表示。
在C语言中,如果想用ASCII码值的10进制方式输入字符。可以使用10进制整数直接给字符变量赋值,例如char a=97;同样这种方式能够输入所有的ASCII字符,但是这种方式只能对单个字符变量进行赋值,并不能够对整个字符串进行一次性赋值。
5、符号转义
打印字符,可以使用字符本身和数字转义两种方式表示。
非打印字符,除了使用数字转义的方式表示外,也有另一种表示方式,特殊符号转义。
这种转义方式由反斜杠和一个打印字符组成,用来表示一个非打印字符,常用相关的字符如下。
a 响铃(BEL) 007 Alert
退格(BS) ,将当前位置移到前一列 008 Backspace
f 换页(FF),将当前位置移到下页开头 012 form feed
换行(LF) ,将当前位置移到下一行开头 010 line feed
回车(CR) ,将当前位置移到本行开头 013 return
水平制表(HT) (跳到下一个TAB位置) 009 Tab
v 垂直制表(VT) 011 vertical tab
上面的字符中,需要特别注意三个字符。
v垂直制表符
在Windows控制台中,垂直制表符并不能够在控制台中直接打印想要的制表效果,而是以一个特殊的字符来表示。
在Linux环境下,垂直制表符能够正常的实现垂直制表的效果。
和
换行和回车
在日常的使用中,我们经常习惯性的将换行和回车等同起来。换行就是回车,回车就是换行。或者说,回车用来换行,这里的回车更多的是指键盘上的Enter键。
实际上,回车和换行是两个不同的概念。
这个字符的产生和这个东西有关Teletype_Model_33
它们的由来网上是这么流传的:
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
- Unix系统里,每行结尾只有“<换行>”,即“
”;
- Windows系统里面,每行结尾是“<换行><回车>”,即“
”;
- Mac系统里,每行结尾是“<回车>”。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
从上面的文字中可以看出,实际上换行的功能本应该是由
共同来完成的,后来在计算机中不同的系统出现了不同的规定。
但是我们知道在C语言中,换行的操作使用的是
,但是上面的文字说在Windows下换行使用的是
。这是不是有矛盾呢。
实际上并没有。
在Windows控制台下运行C语言,我们知道要换行时使用
便能完成操作。但是当要向文件输出数据时,如果我们要实现换行,在代码中我们仍然可以使用
来进行换行的操作。但是在文件实际的存储数据中,换行使用的是
。
简单说一下,在C语言中,如果
后输出其他字符的话,之前在本行开头输出的字符将会被覆盖。
另外,从理论上讲,在Linux环境下v
组合也能够用于换行,但是在实际应用中并不会这样使用。
6、总结
所有转义字符和意义总结如下表:
a 响铃(BEL) 007
退格(BS) ,将当前位置移到前一列 008
f 换页(FF),将当前位置移到下页开头 012
换行(LF) ,将当前位置移到下一行开头 010
回车(CR) ,将当前位置移到本行开头 013
水平制表(HT) (跳到下一个TAB位置) 009
v 垂直制表(VT) 011
代表一个反斜线字符’’ 092
’ 代表一个单引号(撇号)字符 039
” 代表一个双引号字符 034
? 代表一个问号 063