Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash AWS CLI-尝试将命令的输出复制到文本文件_Bash_Shell_Amazon S3_Command Line Interface_Sh - Fatal编程技术网

Bash AWS CLI-尝试将命令的输出复制到文本文件

Bash AWS CLI-尝试将命令的输出复制到文本文件,bash,shell,amazon-s3,command-line-interface,sh,Bash,Shell,Amazon S3,Command Line Interface,Sh,我正在尝试复制amazons3clidelete命令的输出,即使操作被拒绝,但无论我尝试做什么,我似乎都无法将输出复制到文本文件。我正在尝试这样做,这样我就可以将所有失败的操作复制到文本文件中。下面是我用来测试的命令: aws s3 rm s3://xxxxxxxxxx--recursive>>test.txt $ aws s3 rm s3://xxxxxxxxxxx --recursive >> test.txt delete failed: s3://xxxxxxxxxxx/x

我正在尝试复制amazons3clidelete命令的输出,即使操作被拒绝,但无论我尝试做什么,我似乎都无法将输出复制到文本文件。我正在尝试这样做,这样我就可以将所有失败的操作复制到文本文件中。下面是我用来测试的命令:

aws s3 rm s3://xxxxxxxxxx--recursive>>test.txt

$ aws s3 rm s3://xxxxxxxxxxx --recursive >> test.txt

delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied

检查test.txt时,没有新文本。如果有人能告诉我我是如何把这个命令搞乱的,以及如何修复它,我将不胜感激。我对这一点还很陌生,并且试图了解如何更好地使用它。谢谢。

您也必须明确地将
stderr
发送到文件:

aws s3 rm s3://xxxxxxxxxx--recursive 2>>test.txt

$ aws s3 rm s3://xxxxxxxxxxx --recursive >> test.txt

delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
delete failed: s3://xxxxxxxxxxx/xxxxx.png An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied
要发送std输出和错误:

aws s3 rm s3://xxxxxxxxxxx --recursive &> test.txt
# To append
aws s3 rm s3://xxxxxxxxxxx --recursive >> test.txt 2>&1

工作得很好!谢谢。读者注意:
&>
是一种非标准设备,并非所有shell都能识别。事实上,它违反了shell标准,shell应该将其视为
cmd&
,后跟简单的命令
>test.txt
。在bash中,它相当于构造
>test.txt 2>&1