T1.什么是scp命令,scp命令的作用是什么
我看好多教程都没有讲scp这个命令
scp
(Secure Copy)是一个用于在不同主机之间安全地复制文件的命令,它基于SSH协议来进行数据传输和认证。scp
命令既可以从本地复制到远程,也可以从远程复制到本地,还可以在两台远程主机之间复制文件。
1.从本地复制到远程主机
scp /path/to/local/file username@remote_host:/path/to/remote/directory
这里面的 /path/to/local/file就是本机文件的路径,username是远程主机的名字,remote_host是远程主机的ip地址,后面跟着的是要存放的位置。
2.从远程主机复制到本地
scp username@remote_host:/path/to/remote/file /path/to/local/directory
这里举一个例子,比如我远程主机的名字叫abc,ip为192.168.1.10,文件存在/home/docker/java,现在想复制到本地当前文件夹,则代码为
scp abc@192.168.1.10:/home/docker/java .
这里面的.表示将文件或目录复制到本地当前工作目录。
这里只举出了最常见的两种用法
T2.localhost / 与loaclhost ~的区别
/
(根目录):
localhost /
表示本地系统的根目录。- 根目录是文件系统的顶层目录,包含系统的所有文件和子目录。
- 例如:
/home
、/etc
、/usr
等都是根目录下的子目录。
~
(用户的主目录):
localhost ~
表示当前用户的主目录。- 每个用户在系统中都有一个主目录,通常位于
/home/username
,例如用户abc
的主目录通常是/home/abc
。 ~
是一个快捷方式,用于表示当前登录用户的主目录。
假设当前用户是abc
:
localhost /
指向根目录/
,例如/home
,/etc
,/usr
等。localhost ~
指向用户abc
的主目录/home/abc。
T3. /home/docker/java 与 /home/docker/java/ 多了一个/有何区别
/home/docker/java
:不带斜杠,表示路径中具体的文件或目录,可以是文件也可以是目录。/home/docker/java/
:带斜杠,明确表示这是一个目录。
具体的例子
mv /home/docker/java /home/docker/backup
此命令将/home/docker/java
移动到/home/docker/backup
,结果是/home/docker/backup/java
。
mv /home/docker/java/ /home/docker/backup
此命令将/home/docker/java/
目录移动到/home/docker/backup
,最终是/home/docker/backup/java
。
T4.我现在有一个路径是/java/java/kk,有没有什么命令可以删除第一个java,变成/java/kk
1.使用 mv
命令重命名目录
mv /java/java/kk /java/kk
2.使用 rsync
命令复制并删除原目录
rsync -a /java/java/kk/ /java/kk/
rm -rf /java/java/kk