在 Linux 命令行中快速创建和添加行

在 Linux 命令行中快速创建和添加行

我需要检查系统上是否有文件,如果在,我需要在其中添加一行。我必须在脚本中执行此操作,因此我希望此操作不会中断。我能想到的最好方法是这样的:

sudo rm -rf /etc/apt/sources.list.d/docker.list
sudo touch /etc/apt/sources.list.d/docker.list
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee -a /etc/apt/sources.list.d/docker.list

我想知道是否有更优雅的方法来做到这一点。我知道上面的方法有效,但我只是想扩展我对 Linux 命令行的了解。

答案1

你的例子太混乱了。没有检查,命令也毫无意义。我也不知道你为什么要对刚刚删除的文件说“追加”。

无论如何,我的方法是使用重定向运算符。要么是,>要么>>像这样:

覆盖(如果文件丢失则写入新文件):

echo "string for file" > "/path/to/file"

附加到文件(如果缺失,也将创建新文件):

echo "string to append to file" >> "/path/to/file"

如果您想检查系统中是否存在文件,您可以使用:

locate "filename"

或者在脚本中你可以这样做:

#!/bin/sh
if [ -f "/path/to/filename" ]
then
    echo "found filename"
else
    echo "filename is missing"
fi

我建议您查看man [man sh(或man bash)以获取更多示例。

相关内容