'/path/to/file/' 和 '/path/to/file/.' 之间有什么区别?和 Linux 中的“/path/to/file”,特别是 RHEL 和 RHEL 之类的发行版?

'/path/to/file/' 和 '/path/to/file/.' 之间有什么区别?和 Linux 中的“/path/to/file”,特别是 RHEL 和 RHEL 之类的发行版?

在 RHEL 9 中,

  1. 执行该命令cp -a /somedir/. .将“somedir”目录(而不是目录本身)中的所有文件复制到当前目录。

  2. 但该命令mv /somedir/. .会产生错误“无法移动:设备或资源忙”。

  3. 命令mv /somedir/ .mv /somedir .结果将目录“somedir”移动到当前目录。

问题;

  1. 为什么第二个命令会出错?

  2. 在不使用的情况下,*有没有办法使用命令仅将目录内容somedir而不是目录本身移动到当前目录mv

  3. 在 Linux 特别是 RHEL 和类似 RHEL 的发行版中/path/to/file//path/to/file/.、 和之间有什么区别?/path/to/file

答案1

以 结尾的路径/与 相同,/.因此如果您使用,第一个和第二个都会失败,mv因为您无法移动(或以大多数方式修改)目录.。第一个不会给出此错误,因为-a选项cp告诉它递归复制,所以它不会尝试修改目录,只是复制其中的内容。

如果要移动目录,请不要包含尾随/.

您可以轻松移动目录的内容,而*无需列出每个文件名。当然,由于 shell*无论如何都会扩展到每个文件名,这将是同一件事,所以我不确定避免*.

您还可以使用文件名补全来扩展命令行上的文件名——在 bash 中,一种方法是使用esc {

相关内容