Linux chdir到带有空格的目录
我正在运行以下命令:Linux chdir到带有空格的目录,linux,unix,find,cd,Linux,Unix,Find,Cd,我正在运行以下命令: cd $(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX') 它返回如下内容: /tmp/nolio_temp/MyNumb-15_WeCo - MX 当尝试将cd写入此输出时,我无法执行此操作,因为有空格 是否有任何方法可以将cd复制到返回的目录中,即使存在空格,也可以找到该目录?只需将其引用即可: cd "$()" 就你而言: cd "$(find /tmp/my_tem
cd $(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX')
它返回如下内容:
/tmp/nolio_temp/MyNumb-15_WeCo - MX
当尝试将cd
写入此输出时,我无法执行此操作,因为有空格
是否有任何方法可以将
cd
复制到返回的目录中,即使存在空格,也可以找到该目录?只需将其引用即可:
cd "$()"
就你而言:
cd "$(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX')"
通过这种方式,您可以告诉cd
将双引号中的内容用作参数。只需将其引用即可:
cd "$()"
就你而言:
cd "$(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX')"
通过这种方式,您可以告诉cd
将双引号中的内容用作参数。只需将其引用即可:
cd "$()"
就你而言:
cd "$(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX')"
通过这种方式,您可以告诉cd
将双引号中的内容用作参数。只需将其引用即可:
cd "$()"
就你而言:
cd "$(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX')"
通过这种方式,您可以告诉cd
使用双引号中的内容作为参数。这是一个很好的解释,但以下是在奇数情况下正确工作的额外偏执:
IFS= read -r -d '' dirname \
< <(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX' -print0)
cd "$dirname"
IFS=read-r-d''目录名\
<这是一个很好的例子,但以下是在奇怪的情况下正确工作的额外偏执:
IFS= read -r -d '' dirname \
< <(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX' -print0)
cd "$dirname"
IFS=read-r-d''目录名\
<这是一个很好的例子,但以下是在奇怪的情况下正确工作的额外偏执:
IFS= read -r -d '' dirname \
< <(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX' -print0)
cd "$dirname"
IFS=read-r-d''目录名\
<这是一个很好的例子,但以下是在奇怪的情况下正确工作的额外偏执:
IFS= read -r -d '' dirname \
< <(find /tmp/my_temp/ -type d -wholename '/tmp/my_temp/MyNumb-*_WeCo - MX' -print0)
cd "$dirname"
IFS=read-r-d''目录名\
<在对的评论中,您写道希望避免在命令中使用双引号。我很想知道为什么,但你至少可以在bash
中用
eval 'cd '$(find /tmp/nolio_temp -type d \
-wholename '/tmp/nolio_temp/MyNumb-*_WeCo - MX' |
sed -e 's/ /\\ /g')
但是要非常小心恶意文件名。在对的评论中,您写道要避免在命令中使用双引号。我很想知道为什么,但你至少可以在bash
中用
eval 'cd '$(find /tmp/nolio_temp -type d \
-wholename '/tmp/nolio_temp/MyNumb-*_WeCo - MX' |
sed -e 's/ /\\ /g')
但是要非常小心恶意文件名。在对的评论中,您写道要避免在命令中使用双引号。我很想知道为什么,但你至少可以在bash
中用
eval 'cd '$(find /tmp/nolio_temp -type d \
-wholename '/tmp/nolio_temp/MyNumb-*_WeCo - MX' |
sed -e 's/ /\\ /g')
但是要非常小心恶意文件名。在对的评论中,您写道要避免在命令中使用双引号。我很想知道为什么,但你至少可以在bash
中用
eval 'cd '$(find /tmp/nolio_temp -type d \
-wholename '/tmp/nolio_temp/MyNumb-*_WeCo - MX' |
sed -e 's/ /\\ /g')
但是要非常小心恶意文件名。在避免双引号字符的同时,有没有办法做到这一点?单引号不起作用。单引号不会扩展表达式。或者,您可以转义空格,但这看起来更干净。只有在保证只找到一个结果时才安全。@DaxDurax,您可以扩展为什么要避免双引号吗?可能有更好的方法可以达到预期的效果。有没有一种方法可以在避免双引号字符的同时做到这一点?单引号不起作用。单引号不会扩展表达式。或者,您可以转义空格,但这看起来更干净。只有在保证只找到一个结果时才安全。@DaxDurax,您可以扩展为什么要避免双引号吗?可能有更好的方法可以达到预期的效果。有没有一种方法可以在避免双引号字符的同时做到这一点?单引号不起作用。单引号不会扩展表达式。或者,您可以转义空格,但这看起来更干净。只有在保证只找到一个结果时才安全。@DaxDurax,您可以扩展为什么要避免双引号吗?可能有更好的方法可以达到预期的效果。有没有一种方法可以在避免双引号字符的同时做到这一点?单引号不起作用。单引号不会扩展表达式。或者,您可以转义空格,但这看起来更干净。只有在保证只找到一个结果时才安全。@DaxDurax,您可以扩展为什么要避免双引号吗?可能有更好的方法来实现所需的结果。引用是正确的做法,但如果您只想在该目录中执行命令,也可以使用-execdir命令。然后您需要匹配目录中的文件或期望在父目录中执行的文件。您希望如何处理find
命令返回多个结果的情况?引用是正确的做法,但如果您只希望在该目录中执行命令,还可以-execdir命令。然后您需要匹配目录中的文件或期望在父目录中执行的文件。您希望如何处理find
命令返回多个结果的情况?引用是正确的做法,但如果您只希望在该目录中执行命令,还可以-execdir命令。然后您需要匹配目录中的文件或期望在父目录中执行的文件。您希望如何处理find
命令返回多个结果的情况?引用是正确的做法,但如果您只希望在该目录中执行命令,还可以-execdir命令。然后需要匹配目录中的文件或期望在父目录中执行的文件。如果find
命令返回多个结果,您希望如何处理这种情况?