unix 命令的解析方式:"rm" 和 "cp"
How parsing works for unix commands: "rm" and "cp"
我们正在执行以下命令
rm -f $folder_name/filename*
cp $folder_name1/filename1* $folder_name/
检查执行日志后,我们得到以下命令执行
rm -f '/home/user/file*'
cp /home1/user1/file1* /home/user/
为什么 rm
使用单引号而不是 cp
命令执行?
您可能正在检查 bash -x
的输出,它在参数周围添加单引号只是为了消除歧义。但是您显示的代码无法产生您描述的输出结果。
rm wildcard*
如果通配符匹配, 将扩展为 rm
和匹配的文件。但是,如果 不是 ,则扩展将等同于
'rm' 'wildcard*'
我在其中添加引号只是为了表明不会进行进一步的评估,类似于 bash -x
(以及至少 sh -x
的某些变体)所做的。
我们正在执行以下命令
rm -f $folder_name/filename*
cp $folder_name1/filename1* $folder_name/
检查执行日志后,我们得到以下命令执行
rm -f '/home/user/file*'
cp /home1/user1/file1* /home/user/
为什么 rm
使用单引号而不是 cp
命令执行?
您可能正在检查 bash -x
的输出,它在参数周围添加单引号只是为了消除歧义。但是您显示的代码无法产生您描述的输出结果。
rm wildcard*
如果通配符匹配, 将扩展为 rm
和匹配的文件。但是,如果 不是 ,则扩展将等同于
'rm' 'wildcard*'
我在其中添加引号只是为了表明不会进行进一步的评估,类似于 bash -x
(以及至少 sh -x
的某些变体)所做的。