我需要编写一个 bash 脚本,它将查找string.h
计算机上具有名称的所有文件并将它们复制到某个文件夹。我的代码在这里:
#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments
但在执行脚本期间,我在控制台终端上收到错误消息“权限被拒绝”。请告诉我,如何才能避免收到此消息?控制台终端必须清晰。
答案1
如果您的查找尝试在您的用户没有读取权限的目录中移动,或者cp
在您的行中尝试写入您无权访问的目录,则错误“权限被拒绝”是“正常”。您可以通过重定向 stderr 来抑制它们
#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments \; 2>/dev/null
该模式2>/dev/null
意味着将所有错误发送到“无地方”而不是标准错误。
但是发送错误消息并/dev/null
不能解决您的命令没有读或写权限的错误。