我正在为 Linux 操作课程做一个实验。我所困惑的问题是:
以下题目仅使用
cp
复制文件的命令。您当前应该位于您的
lab07
目录中。在此目录中创建一个名为 Ones 的子目录,并将该子目录(工作目录为) 以, , , ...lab07
结尾的所有文件复制到这个新的 Ones 目录中。即复制 files 、等,但不复制 files 、等。编写完整命令,仅使用相对路径将这些文件复制到这个新目录中。/labs/data/filenames/
1
2
3
9
file.1
file.2
file.11
file.21
现在,我可以使用绝对路径来解决问题,命令是:
cp /labs/data/filenames/file.[1-9] /lab07/ones
那么由此来看,相对路径是什么?
我已经尝试不同的命令几个小时了,但我不知道。我明白了相对路径背后的概念,只是当我真正尝试这样做时。我搞不懂!
我们在服务器上使用 bash/shell。我正在使用Xquartz11
答案1
“相对路径”实际上应该称为“相对于当前目录的路径”,因为它就是这样。您可以将相对路径视为附加到当前目录的路径的一部分。
如果你在里面/labs/data/filenames/
并且想进去dir.1
的话,你可以这样做cd /labs/data/filenames/dir.1
。但是,如果将这些目录粘贴到另一个目录下面,您会发现它们的开头是相同的(事实上,第一个目录完全包含在第二个目录中)。所以你可以这样做cd dir.1
,因为当前工作目录 ( /labs/data/filenames/
) 是隐式声明的。
绝对路径始终从目录树的根部开始,因此很容易。相对路径可以从目录树中的任何位置开始,因此如果我们想要到达任何地方,我们需要一种向上的方法。这个目的是通过特殊目录..
(两个点)来实现的,该目录指的是父目录。
如果您在/labs/data/filenames/
,命令cd ..
将带您前往/labs/data/
;命令cd ../..
将带您到/labs/
.cd../../../
会带你去/
。
如果您发布的路径是正确的(它们是有效的,但您不太可能lab07
直接在任何计算机上的文件系统的根目录中找到),那么,从 开始/lab07/
,您必须首先上升到文件系统的根目录,然后下降到目录文件所在的位置。你可以这样做:
cd ../labs/data/filenames/
为了不给你做作业,我就放在这里了。现在您需要将上述相对路径放入cp
命令中。另请注意,您/lab07/
现在就在其中,因此cp
可以缩短目的地路径。您的文件选择部分是正确的,不用担心。
顺便说一句,你的老师应该知道完全file.11
以 结尾1
。他的意思是“所有以一位数字结尾的文件”之类的。