gpt4 book ai didi

linux - "syntax error near unexpected token ` ( ' "使用 rm 命令删除所有文件或目录时出现异常

转载 作者:行者123 更新时间:2023-12-04 19:28:43 26 4
gpt4 key购买 nike

$ sshpass -p "$SSH_PASS" ssh student@"$IP_NFS" "sudo rm -r /srv/nfs4/share/assets_prod/!(v$TAG)"
Warning: Permanently added 'x.x.x.x' (ED0599) to the list of known hosts.
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `sudo rm -r /srv/nfs4/share/assets_prod/!(v0.0.3-rc6)'
检查结果直接到nfs服务器
student@nfs:~$ sudo echo rm -r /srv/nfs4/share/assets_prod/!(v0.0.3-rc6)
rm -r /srv/nfs4/share/assets_prod/kk.dd /srv/nfs4/share/assets_prod/kk.dkk /srv/nfs4/share/assets_prod/kk.dkkff /srv/nfs4/share/assets_prod/v0.0.3-rc2 /srv/nfs4/share/assets_prod/v0.0.3-rc3 /srv/nfs4/share/assets_prod/v0.0.3-rc4 /srv/nfs4/share/assets_prod/v0.0.3-rc5
是什么导致命令运行出现问题?

最佳答案

远端真的在运行

bash -c 'sudo rm -r /srv/nfs4/share/assets_prod/!(v$TAG)'
extglob为您的交互式 shell 设置的选项未为 bash -c 调用的非交互式 shell 设置.
sshpass -p "$SSH_PASS" ssh student@"$IP_NFS" "shopt -s extglob; sudo rm -r /srv/nfs4/share/assets_prod/!(v$TAG)"
应该管用。
更新:因为 extglob影响解析,必须在命令行解析前开启,但是 x; yx 之前完成解析被执行。也许以下方法会起作用:
sshpass -p "$SSH_PASS" ssh student@"$IP_NFS" \
"bash -O extglob -c 'sudo rm -r /srv/nfs4/share/assets_prod/!(v$TAG)'"
如果没有(或者即使有),您可以使用 find :
sshpass -p "$SSH_PASS" ssh student@"$IP_NFS" \
find /srv/nfs4/share/assets_prod \! -name "v$TAG"
如果这列出了您要删除的文件,您可以添加 -delete (如果您的 find 支持它)或 -exec rm {} +find命令来实际删除它们。

关于linux - "syntax error near unexpected token ` ( ' "使用 rm 命令删除所有文件或目录时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68777807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com