Linux下用bash命令执行名称中带有“(”符号的目录注意事项

***********************************************声明************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

表述有错误之处,请您留言或邮件([email protected])指明,不胜感激。

本文转载必须保留此处:http://blog.csdn.net/huangyanlong/article/details/39214295

深蓝的blog:http://blog.csdn.net/huangyanlong

****************************************************************************************************

1. 无意中的发现:对“(”符号的转义

名称带有“(”符号的目录,在Linux系统下是无法直接对其执行操作的,如果要直接对其操作,需要在名称中加入转义符,如下举例

[[email protected] soft]# ls   --查看文件,发现有一个rpm(CentOS5.6 +11g)目录

new                                     p13390677_112040_Linux-x86-64_2of7.zip

p13390677_112040_Linux-x86-64_1of7.zip  rpm(CentOS5.6 +11g)

[[email protected] soft]# cd rpm(CentOS5.6 +11g)   --直接进入目录,提示错误

-bash: syntax error near unexpected token `(‘

[[email protected] soft]# cd rpm\(CentOS5.6\ +11g\)    --修改格式后,进入成功

[[email protected] rpm(CentOS5.6 +11g)]#

如果想要删除操作,当然也需要加入转义符,如下例举:

[[email protected] soft]# rm -rf rpm\(CentOS5.6\ +11g\)/

2. 空格的转义:转义中存在的空格处理

其中注意一点,如果创建目录时存在类似“+”符号与空格相连,需要在其“空格”前加转义符“\”,否则会被拆分成多个目录,举例如下:

没有空格的情况下创建目录:(1+2)

[[email protected] soft]# mkdir \(1+2\)

[[email protected] soft]# ls   --查看发现目录创建成功

(1+2)  new  p13390677_112040_Linux-x86-64_1of7.zip  p13390677_112040_Linux-x86-64_2of7.zip

有空格的情况下创建目录:(1 + 2)

[[email protected] soft]# mkdir \(1 + 2\)

[[email protected] soft]# ls    --查看发现,由于格式没有注意,默认创建了三个目录,分别为:“+”、“(1”、“2)”这三个目录

+   (1+2)  new                                     p13390677_112040_Linux-x86-64_2of7.zip

(1  2)     p13390677_112040_Linux-x86-64_1of7.zip

正确的创建“(1 + 2)”目录的格式应该为如下:

[[email protected] soft]# mkdir \(1\ +\ 2\)

[[email protected] soft]# ls   --查看发现,“(1 + 2)”目录创建成功

(1 + 2)  new   p13390677_112040_Linux-x86-64_1of7.zip   p13390677_112040_Linux-x86-64_2of7.zip

小结:如果目录名称中存在空格,需要对空格单独转义,否则会被拆分成单个的目录

3. 后记:删除掉实验目录

[[email protected] soft]# ls

+     (1 + 2)  new

(1    (1+2)    p13390677_112040_Linux-x86-64_1of7.zip

(1 +  2)       p13390677_112040_Linux-x86-64_2of7.zip

[[email protected] soft]# rm -rf + \(1\ +\ 2\) \(1 \(1\ + 2\)

[[email protected] soft]# ls

(1+2)  new  p13390677_112040_Linux-x86-64_1of7.zip  p13390677_112040_Linux-x86-64_2of7.zip

[[email protected] soft]# rm -rf \(1+2\)

[[email protected] soft]# ls

new  p13390677_112040_Linux-x86-64_1of7.zip  p13390677_112040_Linux-x86-64_2of7.zip

小细节,简而记之

***********************************************声明************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

表述有错误之处,请您留言或邮件([email protected])指明,不胜感激。

本文转载必须保留此处:http://blog.csdn.net/huangyanlong/article/details/39214295

深蓝的blog:http://blog.csdn.net/huangyanlong

****************************************************************************************************

时间: 2024-12-08 11:43:30

Linux下用bash命令执行名称中带有“(”符号的目录注意事项的相关文章

在Linux下如何限制命令执行的时间?

在Linux下如何限制命令执行的时间?两种解决方法,如下: 1: Linux命令--timeout 运行指定的命令,如果在指定时间后仍在运行,则杀死该进程.用来控制程序运行的时间. 2: command & pid=$! ;sleep 2;kill -9 $pid

linux下使用crontab命令执行定时任务

最近因工作技术问题,难以解决生产日志第二天不打印问题,日志原因解决不了,于是想起了使用定时任务明天重启服务,网上百度了一下,使用crontab命令可以完成定时任务, 大家其实不用记住太多,使用xshell或者ssh进入命令行,敲击crontab -e进入定时任务的编辑模式, 0 5 * * *  /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/stopWeblogic.sh 0 6 * * *  /ho

Linux 下 使用Qt查看执行文件中是否包含某字符串的方法

const QByteArray searchqstring= "*********"; QFile file("/opt/***"); file.open(QFile::ReadOnly); while(1) { QByteArray array = file.read(1024); file.seek(file.pos()-6); if(array.contains(searchqstring)) { qDebug()<<"..I find

Linux下的crontab定时执行任务命令详解

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 servi

Linux下的crontab定时执行任务命令详解 - 回家的流浪者 - 博客园

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为“crontab”,是“cron table”的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 service crond stop 

linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)

程序员都很懒,你懂的! 最近在开发中,需要用到服务器的ip和mac信息.但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题.下面是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ public class

Linux下常用SVN命令

1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain  --username qinxiaohui 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3.将改动的文件提交到版本库 svn commit -m "L

linux下的bash编程简要学习

linux下的bash编程简要学习     1.bash是什么: linux运行时系统只会运行系统运行所需要的运行脚本即系统守护进程,一般根据用户自己需求设定和实现的服务需要手动启动,这种服务进程通常由bash启动,脚本中的命令通常被按照一定规则被bash读取视作参数,因此在脚本头部要申明运行的bash类型,bash命令分为内建命令及外部命令,外部命令通过PATH进行依次查找. bash读取命令后将其启动(fork)成为一个进程,依次启动服务     2.bash控制语句:         本地

Linux下的top命令、%cpu和cps(s)到底是什么意思呢!

在linux的top命令里的cpu信息是什么意思呢?Cpu(s): 62.1% us, 15.9% sy,   0.1% ni, 19.4% id,   2.0% wa,   0.1% hi,   0.4% siMem:    8247956k total,   8232004k used,     15952k free,    205240k buffersSwap:   8191992k total,        48k used,   8191944k free,   7156092k