我搜索了map cp
,但找不到安静的选项,因此cp不会报告“没有这样的文件或目录”。如果cp
尝试但未能复制文件,如何使{{1}}不打印此错误?
答案 0 :(得分:30)
每个人都建议重定向到/dev/null
会阻止您看到错误,但这是另一种方式。测试文件是否存在以及是否存在,执行cp
命令。
[[ -e f.txt ]] && cp f.txt ff.txt
在这种情况下,如果第一次测试失败,那么cp
将永远不会运行,因此没有错误。
答案 1 :(得分:12)
如果您只想抑制错误消息:
cp original.txt copy.txt 2>/dev/null
如果你想抑制机器人,错误信息和退出代码使用:
cp original.txt copy.txt 2>/dev/null || :
答案 2 :(得分:6)
一般解决方案是将stderr重定向到bitbucket:
cp old_file new_file 2>>/dev/null
这样做会隐藏脚本中的任何错误,这意味着它会在各种情况下无声地失败。我在重定向中使用>>
而不是>
,以防需要使用日志文件。
答案 3 :(得分:2)
对于打印到STDERR的任何错误,只需将其重定向到/dev/null
:
cp a b 2> /dev/null
答案 4 :(得分:1)
重定向:
cp ... 2>/dev/null
答案 5 :(得分:0)
(define listo
(lambda (l)
(conde
((nullo l) #s)
((pairo l)
(fresh (d)
(cdro l d)
(listo d)))
(else #u))))
(define nullo
(lambda (x)
(== x '())))
(define pairo
(lambda (p)
(fresh (a d)
(conso a d p))))
(define cdro
(lambda (p d)
(fresh (a)
(== (cons a d) p))))
(define conso
(lambda (head tail result)
(== (cons head tail) result)))
ignore-missing-args-被忽略的错误是与不存在的源文件有关的错误