我想将计算机中的软件包列表与我拥有的授权列表进行比较。我该怎么做?以下方法可行吗?
cd /home
touch authorizedlist.txt
(list contents) >> authorizedllist.txt
touch currentlist.txt
dpkg -l | cut -d ' ' -f3 | less >> currentlist.txt
touch difflist.txt
diff authorizedlist.txt currentlist.txt >> difflist.txt
有没有办法在一个命令中创建一个新的文本文件并向其中添加内容,而不是先触摸然后输入文本?另外,有没有办法只打印不需要来自当前列表而不是其中缺少什么?
答案1
是的。
touch
将给定文件的修改时间戳设置为“现在”。如果给定文件尚不存在,则创建该文件。这是创建空文件的常用方法。重定向
>>
附加输出到给定文件。touch
如果文件尚不存在,则创建该文件。但请记住,它附加数据保存到现有文件中。重定向
>
覆写将前一个命令的输出写入给定文件。如果文件尚不存在,则创建该文件。如果文件已存在,则将其截断(即清除或清空),然后将输出写入该文件。less
是所谓的寻呼机。也就是说:它旨在用于交互式使用,因此您可以浏览较大的文件并使用spaceand b(除其他外)在文件或命令输出中前进和后退。如果您无论如何都将命令的输出重定向到文件,则可以(并且应该)省略该less
调用。
放在一起:
cd /home
(list contents) > authorizedlist.txt
dpkg -l | cut -d ' ' -f3 > currentlist.txt
diff authorizedlist.txt currentlist.txt > difflist.txt