尝试查找 --strip-trailing-slashes 的示例

尝试查找 --strip-trailing-slashes 的示例

我发现--strip-trailing-slashes该命令的选项mv令人困惑。

根据 GNU 官方手册,此选项“当源参数可能有尾部斜杠并指定指向目录的符号链接时很有用”。所以我尝试以下操作:

$ mkdir a
$ ln -s a b 
$ mv --strip-trailing-slashes b/ c

我得到了mv: cannot move 'b' to 'c': Not a directory,而我希望b被重命名为c.

我是否误解了这个选项?有如何使用此选项的示例吗?

答案1

该命令mv有时可能会变得混乱。

mv命令有两种选择参数:

mv one two

其一,也是默认设置,是将文件 one进入目录two

如果目录two不存在,则mv one two可能被解释为移动文件 one文件 two(重命名)。当然,如果文件two已经存在,可能会提示用户是否要覆盖它(或其他选项)。

好像这个选项--strip-trailing-slash用的时候意思是lock into moveone 文件变成一个目录(不是重命名)。

如果您在使用时仍想重命名目录--strip-trailing-slash,则必须声明不存在目录:

mv -T one two

例子:

$ mkdir one
$ ln -s one two
$ mv two/ yes
mv: cannot move 'two/' to 'yes': Not a directory

$ mv --strip-trailing-slash two/ yes
mv: cannot move 'two' to 'yes': Not a directory

$ mv -T --strip-trailing-slash two/ yes

$ ls -la
total 12
drwxr-xr-x 3 isaac isaac 4096 Jul 01 03:38 .
drwxr-xr-x 6 isaac isaac 4096 Jul 01 03:37 ..
drwxr-xr-x 2 isaac isaac 4096 Jul 01 03:38 one
lrwxrwxrwx 1 isaac isaac    3 Jul 01 03:38 yes -> one

相关内容