我想将一些文件从根目录(/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/”
我是新学习者。我想问一下
如果以下命令是正确的,如果我想
btmp-20200401
从复制/var/log
到/home/test/copyoflogfiles/
.如果不是,正确的命令是什么cp /var/log/btmp-20200401 /home/test/copyoflogfiles/
当我执行复制命令时,当前目录是什么?假设我在里面
/home/test/copyoflogfiles/
。在那种情况下命令会有所不同吗?你能告诉我从目录中删除单个文件的命令是什么吗?我想
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
它会提示您输入正确的文件。
但是,使用该命令可能mv
比cp
后面跟着命令更好rm
所以你的命令将更改为:
mv /var/log/btmp-20200401 /home/test/copyoflogfiles/
这会移动文件而不是复制并删除。
答案2
cp
执行,rm
, -等命令后,mv
您当前的工作目录将不会更改。
这里是一些有用的命令
答案3
还要注意权限(用户、组、世界)和所有权,这就是为什么一个答案使用sudo cp
而不是仅cp
- /var/log 下的文件很可能只能由 root 读取。在这种情况下,sudo cp
还会复制权限并将所有权设置为 root 用户。因此 /var/log 中的文件由用户 apache、组 apache 拥有,访问权限为 600(只能由所有者读取,不能由组读取,也不能由世界其他地方读取)最终由 root 拥有,并且也只能由 root 读取...在您的用户目录中。
因此,也许可以使用和/或检查目标目录中的所有权ls -l
并修复- 我认为这会带来安全风险,在不同所有者的文件夹中公开具有不同权限的日志文件。考虑正确归档和/或删除。sudo chown
sudo chmod