【发布时间】:2023-03-15 09:00:02
【问题描述】:
就是这样。他们只是不会为我工作。这次我做错了什么?
# nquo is: /home/bryan/renametest/C D/y z
# script:
dirn=dirname "$nquo"
echo "dirn $dirn"
bnam=basename "$nquo"
echo "bnam $bnam"
运行结果:
./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
dirn
./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
bnam
【问题讨论】:
-
可以通过
ls -ld "$nquo"查看文件/目录的权限 -
这是 bash 吗?如果是这样,您缺少
$(...)或dirname和basename调用周围的反引号。另外,使用包含空格的文件名非常棘手。 -
@JimGarrison 不,如果您知道自己在做什么,那一点也不难。
-
@glglgl:它需要细心和关注细节。处理带有空格等的名称比不处理名称要困难得多。或者,换一种说法,当名称中不包含空格时,您可以摆脱草率的技巧,这些技巧碰巧有效,因为名称中没有空格。
-
@JonathanLeffler 我总是将
"..."放在我的变量周围,一切正常。