我编写了一个脚本,用于压缩给定文件夹中的所有文本文件。 压缩后,应将消息记录到日志文件中以查看已压缩的内容。
我收到以下消息:
zip warning: name not matched: *.txt
zip error: Nothing to do! (info.zip)
我想忽略此消息,所以我添加了
./archiveAllFiles.sh >> /home/userName/bin/logs/info.txt 2>&1 >/dev/null
在我的shell脚本中。但是,上述内容只会忽略所有内容,包括被夸大的内容。 它不会打印出任何东西......没有错误,没有警告,也没有关于拉链的信息。
我想要的是记录的内容,但仅排除错误和警告。
Archive: info.zip
inflating: contact.txt
inflating: data.txt
示例:
exeAll.sh
#!/bin/bash
cd /home/userName/bin
echo "`date +%\Y-\%m-\%d_\%H:\%M:\%S` -----" >> /home/userName/bin/logs/info.txt;
./archiveAllFiles.sh >> /home/userName/bin/logs/info.txt 2>&1 >/dev/null;
archiveAll.sh
#!/bin/bash
date=$(date+ "%Y-%m-%d")
path=/home/system/xminfo
cd $path/xfer/env/data
zip -r $path/xfer/env/data/archive/$date.zip *.txt
cd $path/xfer/db/data
zip -r $path/xfer/db/data/archive/$date.zip *.txt
如果我不使用2>&1 > /dev/null
我会得到
zip warning: name not matched: *.txt
zip error: nothing to do! (2017-10-18.zip) <-- comes from path/xfer/env/data
Archive: 2017-10-18.zip <-- comes from path/xfer/db/data
inflating: contact.txt
inflating: data.txt
因为目录有时可能为空。
但我只想记录这部分
Archive: 2017-10-18.zip
inflating: contact.txt
inflating: data.txt