当src文件不存在时,避免使用cat命令出错

时间:2017-11-08 18:37:39

标签: linux file unix concatenation cat

我正在尝试使用linux命令

将file1的内容复制到文件2

cat file1 > file2

file1可能可用,也可能不可用,具体取决于运行程序的不同环境。如果file1不可用,应该在命令中添加什么,以便它不会返回错误?我已经读过附加2> / dev / null不会给出错误。虽然这是真的,但我没有收到错误命令

cat file1 2>/dev/null > file2 当file1不存在时,make file2的先前内容完全为空。我不想丢失file2的内容,以防file1不在那里并且不想返回错误。

此外,在其他情况下命令会失败并返回错误吗?

先谢谢。

4 个答案:

答案 0 :(得分:4)

首先测试file1

[ -r file1 ] && cat ...

有关详细信息,请参阅help test

答案 1 :(得分:0)

详细阐述@Ignacio Vazquez-Abrams:

if (test -a file1); then cat file1 > file2; fi

答案 2 :(得分:0)

File1 is empty

File2 consists below content
praveen

Now I am trying to append the content of file1 to file2

Since file1 is empty to nullifying error using /dev/null so output will not show any error

cat file1 >>file 2>/dev/null

File2 content not got deleted

file2 content exsists
praveen 

If [ -f file1 ]
then
cat file  >> file2
else
cat file1 >>file 2>/dev/null
fi

答案 3 :(得分:0)

首先,你写道:

  

我正在尝试使用linux命令

将file1的内容复制到文件2

要将file1的内容复制到file2,请使用cp命令:

if ! cp file1 file2 2>/dev/null ; then
    echo "file1 does not exist or isn't readable"
fi

为了完整起见,请cat

我会将stderr传递给/ dev / null并检查返回值:

if ! cat file1 2>/dev/null > file2 ; then
    rm file2
    echo "file1 does not exist or isn't readable"
fi