linux下复制、读取、删除文件的命令是什么

linux下复制、读取、删除文件的命令是什么

我想将一些文件从根目录(/var/log/)复制到主目录(home/test/copyfromlogs/),然后我想从根目录中删除这些文件。

我要复制的文件位于/var/log/.根目录已满,因此我想从那里删除以下文件。 。

btmp-20200401 >> 894M; secure-20200322 >> 187M; secure-20200329 >> 235M; secure-20200405 >> 180M;secure-20200412 >> 119M

我已经在下面创建了目录home来备份这些文件,以便我需要它们以防万一。新目录的完整路径是“/home/test/copyoflogfiles/”

我是新学习者。我想问一下

  1. 如果以下命令是正确的,如果我想 btmp-20200401从复制/var/log/home/test/copyoflogfiles/.如果不是,正确的命令是什么

    cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

  2. 当我执行复制命令时,当前目录是什么?假设我在里面/home/test/copyoflogfiles/。在那种情况下命令会有所不同吗?

  3. 你能告诉我从目录中删除单个文件的命令是什么吗?我想btmp-20200401/var/log/复制该文件后删除该文件

亲切的问候

答案1

问题1:你的命令是正确的:

cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

如果您没有复制文件的文件系统权限,则sudo可以使用该命令来提升您的权限,例如:

sudo cp /var/log/btmp-20200401 /home/test/copyoflogfiles/

问题2:

cp如果您使用完整路径,则可以使用从任何目录到任何其他目录的命令,以便可以在任何其他目录中运行该命令。

问题3:

rm /var/log/btmp-20200401

将删除该文件,以确保您可以使用rm -i filename它会提示您输入正确的文件。

但是,使用该命令可能mvcp后面跟着命令更好rm

所以你的命令将更改为:

mv /var/log/btmp-20200401 /home/test/copyoflogfiles/

这会移动文件而不是复制并删除。

答案2

  1. cp执行, rm, -等命令后,mv您当前的工作目录将不会更改。

这里是一些有用的命令

答案3

还要注意权限(用户、组、世界)和所有权,这就是为什么一个答案使用sudo cp而不是仅cp- /var/log 下的文件很可能只能由 root 读取。在这种情况下,sudo cp还会复制权限并将所有权设置为 root 用户。因此 /var/log 中的文件由用户 apache、组 apache 拥有,访问权限为 600(只能由所有者读取,不能由组读取,也不能由世界其他地方读取)最终由 root 拥有,并且也只能由 root 读取...在您的用户目录中。

因此,也许可以使用和/或检查目标目录中的所有权ls -l并修复- 我认为这会带来安全风险,在不同所有者的文件夹中公开具有不同权限的日志文件。考虑正确归档和/或删除。sudo chownsudo chmod

相关内容